diff --git a/SysCAMSGenerationCode/generated_CPP/distance_sensor.cpp b/SysCAMSGenerationCode/generated_CPP/distance_sensor.cpp
deleted file mode 100644
index d29e192d313a6f2da3302a6f48997cda0d94d21c..0000000000000000000000000000000000000000
--- a/SysCAMSGenerationCode/generated_CPP/distance_sensor.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <systemc-ams>
-#include "analog_to_digital.h"
-
-// Simulation entry point.
-int sc_main(int argc, char *argv[]) {
-
-	using namespace sc_core;
-	using namespace sca_util;
-
-	// Declare signal to interconnect.
-
-	// Instantiate source and sink as well as bind their ports to the signal.
-	analog_to_digital analog_to_digital_1("analog_to_digital_1");
-	analog_to_digital_1.sensorIn(
-	// Configure signal tracing.
-	sca_trace_file* tfp = sca_create_tabular_trace_file("distance_sensor_tb");
-
-
-	// Start simulation.
-	sc_start(100.0, SC_MS);
-
-	// Close trace file and stop simulation to enable clean-up by
-	// asking SystemC to execute all end_of_simulation() callbacks.
-	sca_close_tabular_trace_file(tfp);
-	sc_stop();
-	return 0;
-}
-
diff --git a/SysCAMSGenerationCode/generated_CPP/sin_source_sink.cpp b/SysCAMSGenerationCode/generated_CPP/sin_source_sink.cpp
deleted file mode 100644
index b23af42ee703a348973b884d3862c20cbdc1bdc5..0000000000000000000000000000000000000000
--- a/SysCAMSGenerationCode/generated_CPP/sin_source_sink.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <systemc-ams>
-#include "sink.h"
-#include "sin_source.h"
-
-// Simulation entry point.
-int sc_main(int argc, char *argv[]) {
-
-	using namespace sc_core;
-	using namespace sca_util;
-
-	// Declare signal to interconnect.
-	sca_tdf::sca_signal<double> sig_1("sig_1");
-
-	// Instantiate source and sink as well as bind their ports to the signal.
-	sink sink_1("sink_1");
-	sink_1.in(sig_1);
-
-	sin_source sin_source_2("sin_source_2");
-	sin_source_2.out(sig_1);
-
-	// Configure signal tracing.
-	sca_trace_file* tfp = sca_create_tabular_trace_file("sin_source_sink_tb");
-	sca_trace(tfp, sig_1, "sig_1");
-
-	// Start simulation.
-	sc_start(100.0, SC_MS);
-
-	// Close trace file and stop simulation to enable clean-up by
-	// asking SystemC to execute all end_of_simulation() callbacks.
-	sca_close_tabular_trace_file(tfp);
-	sc_stop();
-	return 0;
-}
-
diff --git a/SysCAMSGenerationCode/generated_H/analog_to_digital.h b/SysCAMSGenerationCode/generated_H/analog_to_digital.h
deleted file mode 100644
index 938aefb0e3430e7f21ce5ce1d5936e13f94699da..0000000000000000000000000000000000000000
--- a/SysCAMSGenerationCode/generated_H/analog_to_digital.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef ANALOG_TO_DIGITAL_H
-#define ANALOG_TO_DIGITAL_H
-
-#include <cmath>
-#include <iostream>
-#include <systemc-ams>
-
-SCA_TDF_MODULE(analog_to_digital) {
-
-	// TDF port declarations
-	sca_tdf::sca_in<double> sensorIn;
-	// Converter port declarations
-	sca_tdf::sca_de::sca_out<int> soclibOut;
-	sca_tdf::sca_de::sca_in<int> soclibIn;
-
-	// Constructor
-	SCA_CTOR(analog_to_digital)
-	: sensorIn("sensorIn")
-	, soclibOut("soclibOut")
-	, soclibIn("soclibIn")
-	{}
-
-	void set_attributes() {
-		sensorIn.set_rate(1);
-		sensorIn.set_delay(0);
-		soclibOut.set_rate(1);
-		soclibOut.set_delay(0);
-		soclibIn.set_rate(1);
-		soclibIn.set_delay(0);
-	}
-
-	void processing() {  }
-
-};
-
-#endif // ANALOG_TO_DIGITAL_H
\ No newline at end of file
diff --git a/SysCAMSGenerationCode/generated_H/sin_source.h b/SysCAMSGenerationCode/generated_H/sin_source.h
deleted file mode 100644
index 20097c71c27482f1af10ad767b0e82bda9db943c..0000000000000000000000000000000000000000
--- a/SysCAMSGenerationCode/generated_H/sin_source.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef SIN_SOURCE_H
-#define SIN_SOURCE_H
-
-#include <cmath>
-#include <iostream>
-#include <systemc-ams>
-
-SCA_TDF_MODULE(sin_source) {
-
-	// TDF port declarations
-	sca_tdf::sca_out<double> out;
-
-	// Constructor
-	SCA_CTOR(sin_source)
-	: out("out")
-	{}
-
-	void set_attributes() {
-		set_timestep(0, sc_core::SC_MS);
-		out.set_timestep(1, sc_core::SC_US);
-		out.set_rate(0);
-		out.set_delay(0);
-	}
-
-	void processing() {  double t = out.get_time().to_seconds();  double x = 1.5 * sin(2.0 * M_PI * 50.0 * t);  out.write(x); }
-
-};
-
-#endif // SIN_SOURCE_H
\ No newline at end of file
diff --git a/SysCAMSGenerationCode/generated_H/sink.h b/SysCAMSGenerationCode/generated_H/sink.h
deleted file mode 100644
index bcf8081484bce60d8e87d0ca2e367497da7e86f5..0000000000000000000000000000000000000000
--- a/SysCAMSGenerationCode/generated_H/sink.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef SINK_H
-#define SINK_H
-
-#include <cmath>
-#include <iostream>
-#include <systemc-ams>
-
-SCA_TDF_MODULE(sink) {
-
-	// TDF port declarations
-	sca_tdf::sca_in<double> in;
-
-	// Constructor
-	SCA_CTOR(sink)
-	: in("in")
-	{}
-
-	void set_attributes() {
-		set_timestep(0, sc_core::SC_MS);
-		in.set_timestep(0, sc_core::SC_US);
-		in.set_rate(0);
-		in.set_delay(0);
-	}
-
-	void processing() {  using namespace std;  cout << this->name() << " @ " << this->get_time() << ": "     << in.read() << endl; } 
-
-};
-
-#endif // SINK_H
\ No newline at end of file
diff --git a/build.txt b/build.txt
index 601f1d44f315432d85e8665a8b41e201b5f81e03..58c7642113ad5e1759c3f8328c8536108f5425a4 100644
--- a/build.txt
+++ b/build.txt
@@ -1 +1 @@
-12678
\ No newline at end of file
+12689
\ No newline at end of file
diff --git a/doc/AVATAR/Makefile b/doc/AVATAR/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..71b7245aa13e3bf2488c7a841c05d1954792ab75
--- /dev/null
+++ b/doc/AVATAR/Makefile
@@ -0,0 +1,7 @@
+
+FIGDIR		:= fig
+BUILDDIR	:= build
+
+include ../mli.mk
+
+$(BUILDDIR)/avatar_documentation.pdf: $(FIGURES)
diff --git a/doc/AVATAR/avatar_documentation.tex b/doc/AVATAR/avatar_documentation.tex
new file mode 100644
index 0000000000000000000000000000000000000000..f3150a8b00b495c720b36b958e2dd4c7bbee113e
--- /dev/null
+++ b/doc/AVATAR/avatar_documentation.tex
@@ -0,0 +1,617 @@
+\documentclass[12pt]{article}
+\usepackage{amsmath}
+\usepackage{latexsym}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage{graphicx}
+\usepackage{txfonts}
+\usepackage{wasysym}
+\usepackage{adjustbox}
+\usepackage{ragged2e}
+\usepackage{tabularx}
+\usepackage{hhline}
+\usepackage{float}
+\usepackage{multirow}
+\usepackage{makecell}
+\usepackage{fancyhdr}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{listings}
+\usepackage[a4paper,bindingoffset=0.2in,headsep=0.5cm,left=1in,right=1in,bottom=3cm,top=2cm,headheight=2cm]{geometry}
+\usepackage{hyperref}
+\usepackage{listings}
+\usepackage[most]{tcolorbox}
+
+\lstset{language=C,basicstyle=\scriptsize\ttfamily,keywordstyle=\bfseries, commentstyle=\textit,stringstyle=\ttfamily, showspaces=false,showstringspaces=false, frame=single,
+  breaklines=true,
+  postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space},
+}
+
+\everymath{\displaystyle}
+\pagestyle{fancy}
+\fancyhf{}
+\rfoot{Page \thepage}
+\begin{document}
+\sloppy 
+
+\begin{center}
+
+\includegraphics[width=0.2\textwidth]{fig/logotpt}
+\vspace{10 pt}\\
+\Huge TTool \\
+\vspace{10 pt}
+\Large \url{ttool.telecom-paristech.fr}
+\vspace{20 pt}\\
+\underline{\Large Use of TTool explained through the creation of a coffee machine.}
+\vspace{30 pt}
+\end{center}
+
+\begin{table}[H]
+\large
+\centering
+\begin{adjustbox}{width=\textwidth}
+\begin{tabular}{ |p{1.6cm}|p{6.0cm}|p{4.2cm}|p{4.2cm}| }
+\hhline{----}
+ & \textbf{Document Manager} & \textbf{Contributors}  & \textbf{Checked by}  \\ 
+\hhline{----}
+\textbf{Name}   & Ludovic APVRILLE & \multirow{2}{4.2cm}{Christophe Manseau, Philippe Paquette,
+Ludovic APVRILLE} &
+\multirow{2}{*}{Ludovic APVRILLE} \\
+\hhline{--~~}
+\textbf{Contact} & ludovic.apvrille@telecom-paristech.fr &  &  \\ 
+\hhline{--~~}
+\textbf{Date} & \today &  &  \\ 
+\hline
+\end{tabular}
+\end{adjustbox}
+\end{table}
+
+\newpage
+\tableofcontents
+
+% \newpage
+% \listoffigures
+
+\newpage
+\section{Preface}
+
+\subsection{Table of Versions}
+
+\begin{table}[H]
+\large
+\centering
+\begin{adjustbox}{width=\textwidth}
+\begin{tabular}{ |p{1.5cm}|p{2.5cm}|p{9.0cm}|p{3.0cm}| }
+\hhline{----}
+\textbf{Version} & \textbf{Date} & \textbf{Description  $  \&  $  Rationale of
+Modifications} & \textbf{Sections Modified} \\
+\hhline{----}
+1.0 & July 7, 2018 & First draft &  \\ 
+\hline
+\end{tabular}
+\end{adjustbox}
+\end{table}
+
+\subsection{Table of References and Applicable Documents}
+
+\begin{table}[H]
+\large
+\centering
+\begin{adjustbox}{width=\textwidth}
+\begin{tabular}{ |p{2.66in}|p{2.66in}|p{0.95in}|p{0.43in}| }
+\hhline{----}
+\textbf{Reference} & \textbf{Title  $  \&  $  Edition} & \textbf{Author or
+Editor} & \textbf{Year}
+\\
+\hhline{----}
+ &  &  &  \\ 
+\hline
+\end{tabular}
+\end{adjustbox}
+\end{table}
+
+\subsection{Acronyms and glossary}
+
+\begin{table}[H]
+\large
+\centering
+\begin{adjustbox}{width=\textwidth}
+\begin{tabular}{ |p{1.24in}|p{5.45in}| }
+\hhline{--}
+\textbf{Term} & \textbf{Description} \\ 
+\hhline{--}
+ &  \\ 
+\hline
+\end{tabular}
+\end{adjustbox}
+\end{table}
+
+\newpage
+\section{Introduction}
+
+TTool is an open-source toolkit dedicated to the design of embedded systems based on UML and SysML diagrams. The source files of TTool can be downloaded from the website: http://ttool.telecom-paristech.fr/download.html
+after having accepted the license agreement. To install the tool, simply unpack the archive in your home directory and follow the installation process of your operating system.
+
+\section{Getting Started}
+\subsection{Opening from terminal}
+
+After downloading it from the Internet, the most effective way to open TTool is to open it from your computer terminal. Open the folder in which the application is located and then open using the command:
+\begin{lstlisting}{bash}
+
+ start ttool_windows
+ 
+
+\end{lstlisting}
+
+or 
+\begin{lstlisting}{bash}
+
+open ttool_macosx
+ 
+
+\end{lstlisting}
+
+or \begin{lstlisting}{bash}
+
+Run ttool_linux
+
+\end{lstlisting}
+
+
+\subsection{Start new project}
+To create a new project, click on the “new” button as shown in Figure \ref{fig:createfile} below or select file and then new on the main tab. As shown in Figure \ref{fig:createmethod}, the main TTool window contains three different areas, the Project navigation window, the Design window and the Map view window; allowing the user to navigate through the files of the project and rapidly search for elements of a design, observe and create the SysML diagrams of the design, and have a bird’s eye view of the current diagram respectively.
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/createfile.png}
+\caption{Create a file} \label{fig:createfile}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/createmethod.png}
+\caption{Create an AVATAR Methodology} \label{fig:createmethod}
+\end{figure*}
+
+To begin, we will start with the creation of a Methodology diagram as the one shown on Figure \ref{fig:methoddiagram}. In order to do this, right click on the design window and select “New AVATAR Methodology” (Figure \ref{fig:createmethod}). For each box on this diagram another diagram from the development of the project will be selected, however, this example will not include any properties or prototyping and therefore, these two boxes will remain blank. After all the other diagrams are created by following the steps in the remainder of this manual, one will go back to the methodology diagram, double click on each box, select the diagram corresponding to it and click on the arrow as shown in Figure \ref{fig:selectdiagram} in order to select it. 
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/methoddiagram.png}
+\caption{Methodology Diagram} \label{fig:methoddiagram}
+\end{figure*}
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/selectdiagram.jpg}
+\caption{Selecting Diagrams} \label{fig:selectdiagram}
+\end{figure*}
+
+
+\section{Analysis}
+\subsection{Assumptions}
+
+As shown in Figure \ref{fig:assumptionswindow}, right click on the panel tab and add a “New Modeling Assumptions” diagram. By right clicking on the panel, it can be moved left or right. You will now have an Assumptions panel and underneath it an Assumptions diagram tab. You can right click on this tab in order to rename it, in this example, we changed its name to ‘System’. You will then add an assumption box by clicking on the AST button as shown in Figure \ref{fig:assumptionswindow}. You can add as many assumptions as needed in order to fully explain what is being taken into account for the system. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/assumptionswindow.jpg}
+\caption{Assumptions Window} \label{fig:assumptionswindow}
+\end{figure*}
+
+\begin{enumerate}
+\item Edit AVATAR Modeling Assumptions Diagram
+\item  Add a comment: add a comment to the diagram
+\item  Comment connector
+\item  AST: add an assumption box to the diagram
+\item  Diagram reference: add a box who refers to another diagram
+\item  Element reference: add a box who refers to an Avatar element
+\item  Composite: Splits up a compound asuumptions into elementary ones
+\item  Versioning: classify changes that are made to the original model
+\item  Impact: indicate that the assumption at the origin of the link as a direct impact on the referenced element at the end on the link. 
+\item Composition connector: relations between a diagram reference and elements references
+\end{enumerate}
+
+To edit each of these boxes, one should double click on them. A window like the one shown in Figure \ref{fig:assumptionsedit} will appear. In this window one can modify the name and type of the assumption, as well as other attributes such as durability, source, status and scope. Also, a little description of the assumption can be added in the box on the lower left corner. Furthermore, different types of links, or connections, can be added between the different boxes by clicking on the respective button shown in Figure \ref{fig:assumptionswindow} and then on the perimeter of each of the boxes you wish to link. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/assumptionsedit.jpg}
+\caption{Assumptions Editing} \label{fig:assumptionsedit}
+\end{figure*}
+
+Finally, in this example we have created two assumption diagrams; one for the system itself and one for the environment. The first one contains all the assumptions made directly about the system, while the second includes assumptions that may not be directly included in the system, but will affect its performance as shown in Figure \ref{fig:envassumptions}. One can add as many diagrams as one pleases by simply right clicking next to the existing diagram and selecting ``New AVATAR Modeling Assumptions Diagram'' and following the previously mentioned steps.
+
+It is important to keep in mind that these assumptions will allow the creator and others needing to interact with the system to keep track of what was and was not considered during design. Therefore, one should attempt to be as descriptive as possible. This will make future improvements and changes easier while providing essential information about the system itself, resulting in a more complete design. 
+
+As shown in Figure \ref{fig:systemassumptions}, the system assumptions made for the coffee machine are those who enable the system to perform without malfunction. For example, we have assumed the lack of failures due to power outages and connectivity failures. 
+
+The environment assumptions were divided in two main categories: the sensors and the actuators. In this example, due to the short number of environment assumptions, they were all created on the same diagram as shown in Figure \ref{fig:envassumptions}. It should be noted that there could be three diagrams for the environment assumptions only. The first one would indicate the link between the environment and the two other diagrams, which would be the sensors diagram and the actuators diagram.
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/systemassumptions.jpg}
+\caption{System Assumptions} \label{fig:systemassumptions}
+\end{figure*}
+
+The coffee machine has two type of sensors, a currency detector and pushbuttons. Together, they allow the users to order a cup of coffee or a cup of tea, and to pay for it. For their part, the actuators shall allow the users to receive their order. This part was fulfilled by the mechanical device. A mechanism permitting a transfer of information to the users was added to improve the ease of use of the coffee machine. As for the system, the assumptions enable the system to perform without malfunction.
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/environmentassumptions.jpg}
+\caption{Environment Assumptions} \label{fig:envassumptions}
+\end{figure*}
+
+\subsection{Requirements}
+A requirement is a capability or a condition that the system must satisfy. It can be about a function that the system shall perform or a performance condition that must be achieved. Figure \ref{fig:reqbox} shows the standard form and information of a requirement box.
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.3\textwidth]{fig/reqbox.jpg}
+\caption{Requirement Box} \label{fig:reqbox}
+\end{figure*}
+
+\begin{itemize}
+\item Requirement name
+\item ID: unique identifier
+\item Text: text requirement
+\item Kind: status
+\item Risk: priority
+\item Reference elements
+\end{itemize}
+
+There are two parts where the requirements can be expressed. The use cases, which is a part of the analysis diagram, can be useful to express the functional requirements. However, it is not suitable for non-functional requirements. For its part, the requirements diagram enables us to introduce text-based requirements, providing a way to express the non-functional requirements. This diagram follows after setting up the assumptions for our system.
+
+We will create one or several diagrams defining the requirements that the coffee machine controller will have. To do this, right click on the panel tab as before, but instead select “New Requirement Diagrams”. Just as before, a new diagram tab will appear underneath. Once again, this diagram tab can be renamed as preferred following the same steps we used in the assumption diagrams.
+	
+For the coffee machine, we will divide the requirements in three parts: the requirements related to the inputs, the control and the outputs.
+The first diagram is named ``General Requirement Diagram''. It contains the link between the three parts mentioned above, which will all have their own requirements diagram. 
+	
+		Figure \ref{fig:reqdiagram} shows the structural elements available to build the requirements diagram.
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.7\textwidth]{fig/reqdiagram.jpg}
+\caption{Structural elements of the requirements diagram} \label{fig:reqdiagram}
+\end{figure*}
+
+\begin{enumerate}
+\item Edit Requirements Diagram
+\item Add a comment: add a comment to the diagram
+\item Comment connector
+\item Requirement: add a requirement box to the diagram
+\item Property: add a property box to the diagram
+\item Composition: a relationship who defines the requirements hierarchy
+\item DeriveReqt: a relationship who links two requirements of the same hierarchy but at different levels of abstraction
+\item Copy: a relationship that connect a slave requirement a master requirement
+\item Refine: a relationship who links used between a requirement that refine another
+\item Verify: a relationship who defines how a model element verifies a requirement
+\item Element reference
+\item Satisfy: a relationship who show that a concept satisfies a requirement
+\item Show/hide element attributes
+\item Enhance
+
+\end{enumerate}
+
+Figure \ref{fig:reqgeneral} represents the general requirement diagram obtained for the coffee machine controller.
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/reqgeneral.jpg}
+\caption{General Requirement Diagram} \label{fig:reqgeneral}
+\end{figure*}
+
+
+In a similar way to that of the assumptions, a new requirement can be added by selecting the requirement button shown in Figure \ref{fig:reqdiagram}. Once created, it can also be modified by double clicking on it. When the new window pops up, one can provide a description and change the ID, Type, Risk and Reference attributes of each requirement.
+	The next step was to create the inputs diagram, the control diagram and the outputs diagram. By using the requirement box and relationships described in Figure \ref{fig:reqdiagram}, we obtained the diagrams shown in Figures \ref{fig:inputreq} and \ref{fig:controlreq}. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/inputreq.jpg}
+\caption{Inputs requirements diagram} \label{fig:inputreq}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/controlreq.jpg}
+\caption{Control requirements diagram} \label{fig:controlreq}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/outputreq.jpg}
+\caption{Output requirements diagram} \label{fig:outputreq}
+\end{figure*}
+
+\subsection{Use Case}
+	Once again, right click on the panel tab. This time, select the “New Analysis” option, which will give you a window like the one shown in Figure \ref{fig:createusecase}. We will begin the analysis process with a Use Case Diagram. To add it, right click on the window and select “New Use Case Diagram”. This diagram will allow us to represent the system, the actors acting on it and the different instances or use cases that will be modeled. All these elements can be observed in Figure \ref{fig:usecase}. To add each of them you should use the buttons shown in Figure \ref{fig:structusecase}. To change the names, double click on each on them.
+	
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/createusecase.png}
+\caption{Create Use Case Diagram} \label{fig:createusecase}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/structusecase.jpg}
+\caption{Structural elements of the use case diagram} \label{fig:structusecase}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/usecase.jpg}
+\caption{Use Case Diagram} \label{fig:usecase}
+\end{figure*}
+
+
+
+\begin{enumerate}
+\item Edit Use Case Diagram
+\item Add a comment: add a comment to the diagram
+\item Comment connector
+\item Add a border: create a system box who defines the boundaries of the system
+\item Actor: add an actor to the diagram
+\item Actor (Box Format): add an actor box to the diagram
+\item Add a use case
+\item Actor <->use case: links an actor to a use case
+\item Include: a relationship who links a function to a subfunction whose mandatorily included
+\item Extend: a relationship who links a function to a sibfunction whose optionally included
+\item Specialization: links a `parent' function whose specialized by a `child' function
+\end{enumerate}
+
+As shown in Figure \ref{fig:usecase}, on the left hand of the diagram, one can find the actors that initialize a process, while on the right we have the actors or elements that are activated as a result of it. The box in the middle represents the enclosed system and the four bubbles inside of it are the use cases: they represent the actions that the system will perform and are linked to the actor(s) involved in them. The links are usually an action description in a few words.
+
+Once done, the next step is to create an activity diagram. Just as before, right click on the diagram tab and select “New Activity Diagram”.  In TTool, an activity diagram is portrayed in the form of what is commonly known as a flowchart. The elements that can be added to it are shown on the button tab and they include activities, partitions, the start and end of the activity, choices and tabs for whether there is a signal being sent or received. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.4\textwidth]{fig/actdiagram.jpg}
+\caption{Activity Diagram} \label{fig:actdiagram}
+\end{figure*}
+ 
+In the example shown in Figure \ref{fig:actdiagram}, only a start, activities and a junction are used.  After each of the elements is added, they can be edited by double clicking on them. The activity boxes should represent each of the steps that the system will perform. In addition, to edit the choice elements, click on each of the brackets or guards that appear on each of the rhombus connectors and write in the condition that must be satisfied for each option. Finally, the arrows, or associations, can be added by clicking on the respective button and then by clicking on a point on the perimeter of each of the elements being linked.
+	The final section of the analysis is creating a scenario or sequence. As in previous, cases right click on the diagram tab and select “New Sequence Diagram.” This diagram will allow us to showcase the logical progression of actions as well as the different instances in which different actors or components come into play during the execution of the system. Using the different buttons at the top of the window one can add instances, timers and indicate whether the message being transmitted is synchronous or asynchronous1 among other elements. 
+To add an actor, click the “Instance” button and place it on the window. Then, double click as if to edit. When the pop up window appears, check the box that says “actor”. After setting up the main structure of the system use the arrows mentioned before to represent the messages being sent between the different elements, add text describing the process by double clicking on them after setting them in place. Though not shown in this example, when adding a timer one must also indicate the amount of time assigned to it and its attributes.
+
+As shown in Figure \ref{fig:paymentseqdiagram} and \ref{fig:choiceseqdiagram}, the sequence diagram functions as a visual description of the flow of messages and information inside the system. If required, one can create more than one diagram in the same window, or add as many sequence diagrams as necessary.
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/paymentseqdiagram.jpg}
+\caption{Logical progession of the `Payment' sequence diagram} \label{fig:paymentseqdiagram}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/choiceseqdiagram.jpg}
+\caption{Logical progression of the `ChoiceAndService' sequence diagram} \label{fig:choiceseqdiagram}
+\end{figure*}
+
+\section{Design}
+	Just as with all the previous sections, to start the design, one will right click on the panel tab and select “New Design”. This will open the window to create a “Block Diagram”-- here we will create the main structure of our system. To add a block, click on the block button shown in Figure \ref{fig:blockdiagram}. You will create as many blocks as actors/parts you have determined in the previous parts of the creation process. 
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/blockdiagram.jpg}
+\caption{Structural elements of the block diagram} \label{fig:blockdiagram}
+\end{figure*}
+
+
+\begin{enumerate}
+\item Edit interaction overview diagram
+\item Add a comment: add a comment to the diagram
+\item Security pragmas
+\item Safety property
+\item Performance property
+\item Comment connector
+\item Block
+\item Crypto block
+\item Add an avatar firewall
+\item Data type 
+\item Library function
+\item Crypto library function
+\item Composition connector
+\item Port connector
+\item Show/hide element attributes
+
+\end{enumerate}
+
+The coffee machine controller has five blocks: the pushbuttons, the token slot, the controller of the machine, the mechanical block, and the numerical screen. The name of each block can be edited by double clicking on the top part of the block and writing in the desired name. In addition, every time a block is created, a new tab corresponding to that block will appear next to the block diagram. We will look further into each of them later in this manual.
+
+	Following the creation of the blocks, attributes and signals for each of them will be added. To do this, double click on the bottom part of the block. A pop up window as the one shown in Figure \ref{fig:setattribute} will show up. In the ‘Attributes’ section we will indicate the elements or variables that will interact with that section of the machine and whether they are integers, timer or Boolean values. In this example only the token slot, the controller and the pushbuttons have ‘Attributes’. In the two first of them we can find “T” (short for token), which is an integer. This can be defined by selecting “int” from the drop down menu in the section indicated in Figure \ref{fig:setattribute}. In addition, in the two last of them we can find timers.
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.5\textwidth]{fig/setattribute.png}
+\caption{Setting attributes of a block} \label{fig:setattribute}
+\end{figure*}
+
+
+Furthermore, the ‘signals’ represent the information being sent and received by each component of the machine. On the same pop up window as before, click on the signals tab on the top. To add a signal, just select whether it is coming in or going out in the box shown in Figure \ref{fig:setsignal} and then give it a name. If two blocks have communication between them, one should have the outgoing signal, and the other the receiving signal. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.5\textwidth]{fig/setsignal.png}
+\caption{Setting signals of a block} \label{fig:setsignal}
+\end{figure*}
+
+
+	Finally, one will add port connections by clicking on the respective button shown in Figure \ref{fig:blockdiagram}, and then selecting a point on the perimeter of the blocks being connected. Next, double click on the connector; a new window will pop up (Figure \ref{fig:portconn}). 
+	
+	\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.5\textwidth]{fig/portconn.png}
+\caption{Port Connection between blocks} \label{fig:portconn}
+\end{figure*}
+
+	Here you will select the outgoing and incoming pairs of signals and one by one add them as shown in Figure \ref{fig:portconn}. In addition, you can select whether this message is asynchronous or synchronous on the boxes in the inferior part of the window. Once all the signals and connections between each of the blocks are set, we can move on to the diagrams for each of the blocks.
+The block diagram created for the coffee machine controller is shown in Figure \ref{fig:blockdiag}.
+
+	\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/blockdiag.jpg}
+\caption{Block diagram} \label{fig:blockdiag}
+\end{figure*}
+
+Once the block diagram is finished, we will go to the tabs that appeared for each of the blocks. Here, we will show through a flow chart the process through which each element goes to complete its specified task. Unlike before, in this case the black dot that indicates the process is starting is automatically added. We will complete the design from there down. Also, differently than in the activity diagram created during the analysis, here we can add the states in which the machine, or part of the machine is, choices, signals being sent and received and stops. Each of these buttons are shown in Figure \ref{fig:structelementsblock}. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/structelementsblock.png}
+\caption{Structural elements of each block diagram} \label{fig:structelementsblock}
+\end{figure*}
+
+\begin{enumerate}
+\item Edit AVATAR state machine diagram
+\item Add a comment: add a comment to the diagram
+\item Comment connector
+\item Connect two operators together
+\item Start: add a starting point to the diagram
+\item Stop: add a stopping point which will be the final state when it is reached (the block instance `dies')
+\item State
+\item Choice: add transitions that can be taken following specific conditions
+\item Select random: add an attribute that can give a random value to a variable
+\item Send signal: add an output signal
+\item Receive signal: add an input signal
+\item Library function call
+\item Set timer: add a timer that will start when it is reached
+\item Reset timer: stop the timer's clock and reset it
+\item Wait for timer expiration
+\item Enhance
+\item Show/hide AVATAR IDs
+\end{enumerate}
+
+Using as reference what was already indicated in the block diagram, we will determine when messages are being sent and the states in which the machine is before and after each iteration. The diagrams for the mechanical block, numerical screen, controller, token slot and pushbuttons can be observed as example in Figures \ref{fig:mechdiagram} to \ref{fig:pushbuttondiagram} respectively.
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/mechdiagram.jpg}
+\caption{Mechanical block diagram} \label{fig:mechdiagram}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/numdiagram.jpg}
+\caption{Numerical screen diagram} \label{fig:numdiagram}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/controllerdiagram.jpg}
+\caption{Controller diagram} \label{fig:controllerdiagram}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.9\textwidth]{fig/tokendiagram.jpg}
+\caption{Token slot diagram} \label{fig:tokendiagram}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.5\textwidth]{fig/pushdiagram.jpg}
+\caption{Pushbuttons diagram} \label{fig:pushbuttondiagram}
+\end{figure*}
+
+\section{Verification}
+	Finally, the last step of the process is to verify that the system we have created works properly and follows each of the steps we desire it to. In order to do this, we will use the “Syntax Analysis” tool, which is shown in Figure \ref{fig:syntaxanalysis}. After you click on it, a screen like the one in this same figure will appear. There you can select whether you want to check the syntax of the whole system or individual parts. After this is determined, click on start syntax analysis and wait a second. After the software is done, it will either pop up an error message like the one in Figure \ref{fig:syntaxerror}, meaning that the system has not been designed correctly; or if no errors are found, the “Interactive Simulation” button (Figure \ref{fig:syntaxanalysis}), which was once greyed out, will now be blue and you will be able to click on it.
+
+\begin{enumerate}
+\item Syntax Analysis
+\item Select elements to analyze
+\item Start analysis
+\item Interactive Simulation (currently greyed out)
+
+
+\end{enumerate}
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/syntaxanalysis.jpg}
+\caption{Syntax analysis} \label{fig:syntaxanalysis}
+\end{figure*}
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.3\textwidth]{fig/syntaxerror.png}
+\caption{Syntax analysis error message} \label{fig:syntaxerror}
+\end{figure*}
+
+	If this is the case, then you will click on it and a window like the one in Figure \ref{fig:interactivesim} will appear on your screen. Click on run simulation and wait. The software will then go through a full iteration of the machine and show each step in the way portrayed by Figures \ref{fig:simstep1} and \ref{fig:simstep2} below. This tool is very useful in that it allows us to see how the different parts of the machine communicate as well as each step of the process programmed.
+\subsection{Reachability Graphs}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/interactivesim.png}
+\caption{Interactive Simulation} \label{fig:interactivesim}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/simstep1.png}
+\caption{Simulation steps (part 1)} \label{fig:simstep1}
+\end{figure*}
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/simstep2.png}
+\caption{Simulation steps (part 2)} \label{fig:simstep2}
+\end{figure*}
+
+
+	Another interesting feature in the TTool software is the ability to graph or map the processes. This generates a graph that allows us to see all the different pathways that the system follows to reach its final state, each showing a different scenario. In addition, one can select a specific initial and final state, which simplifies said graph and gives a neater depiction of the process. Figure \ref{fig:rg} shows an example. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/rg.png}
+\caption{Reachability graph} \label{fig:rg}
+\end{figure*}
+
+\subsection{Latency Analysis}
+
+
+Many real-time safety-critical systems interact continuously with the environment and users. New input from the outside world is processed by the system, which then effectuates a response observable in the real world. The timing of such responses can greatly impact functionality and safety.
+
+Latency analysis is performed in multiple steps. First, the quantitative requirement on latency must be defined. Next, the text requirement must be translated to determine which modeling elements the critical events refer to, after which latencies can be measured in simulation. The results are then conveniently displayed on the modeling diagrams. This example uses the updated Coffee Machine model that can be found in the TTool sample modeling repository.
+
+Figure \ref{fig:latencyreq} shows a requirement related to timing: The Coffee Machine must take less than X seconds to finish a drink command after payment has been received. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.3\textwidth]{build/latencyreq-svg.pdf}
+\caption{Latency Requirement for Coffee Machine} \label{fig:latencyreq}
+\end{figure*}
+
+The operators relating to this requirement are the last `getCoin(x)' and the idle state after processing `WaitingForFirstCoin'. Figure \ref{fig:latencycheckpoint} shows how the two operators are tagged with `Latency Checkpoints', in the form of blue flags.
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{build/latencycheckpoint-svg.pdf}
+\caption{Latency Checkpoints on Activity Diagram} \label{fig:latencycheckpoint}
+\end{figure*}
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/latencymeasure.png}
+\caption{Latency Measurement Panel} \label{fig:latencymeasurement}
+\end{figure*}
+
+After syntax analysis, run interactive simulation, and then on the Latency Panel (Figure \ref{fig:latencymeasurement}), we indicate that we should measure the latency between these two checkpoints by selecting the operators and clicking the `Add latency' button. After running 100 steps of the simulation, the minimum, maximum, average, standard deviation of the latency measurements is displayed as shown in Figure \ref{fig:latencyresults}.
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{fig/latencyresults.png}
+\caption{Latency Results} \label{fig:latencyresults}
+\end{figure*}
+
+
+\section{Conclusion}
+
+	All in all, TTool is a useful software, which allows the user to generate systems using SysML. By guiding the user through each of the steps of the process (Methodology, Assumptions, Requirements, Analysis and Design) it serves as a platform for better structured, and comprehensive designs. These models provide all the information required to understand the present state of the design and enable easy changes in the future. It is straightforward and intuitive and it has many more features than the ones shown in this manual, therefore making it a very complete tool in the development and simulation of engineering designs. 
+	
+\end{document}
diff --git a/doc/AVATAR/fig/actdiagram.jpg b/doc/AVATAR/fig/actdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1242faaed96df5c5d3589514ef0cfc6446f2dc80
Binary files /dev/null and b/doc/AVATAR/fig/actdiagram.jpg differ
diff --git a/doc/AVATAR/fig/assumptionsedit.jpg b/doc/AVATAR/fig/assumptionsedit.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..de8ded925b57dfd766d23ac69120c5e4f74d023b
Binary files /dev/null and b/doc/AVATAR/fig/assumptionsedit.jpg differ
diff --git a/doc/AVATAR/fig/assumptionswindow.jpg b/doc/AVATAR/fig/assumptionswindow.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e57e7dca11e8147bea331e6a895962d5983863df
Binary files /dev/null and b/doc/AVATAR/fig/assumptionswindow.jpg differ
diff --git a/doc/AVATAR/fig/blockdiag.jpg b/doc/AVATAR/fig/blockdiag.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d63a3a98068821579bbecc727a8e372791fef51d
Binary files /dev/null and b/doc/AVATAR/fig/blockdiag.jpg differ
diff --git a/doc/AVATAR/fig/blockdiagram.jpg b/doc/AVATAR/fig/blockdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..99e4f39d8992b09e881a90ec52162a1834c2d75d
Binary files /dev/null and b/doc/AVATAR/fig/blockdiagram.jpg differ
diff --git a/doc/AVATAR/fig/choiceseqdiagram.jpg b/doc/AVATAR/fig/choiceseqdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..240f32a9505df83b207d011b3bc07c9d58505b96
Binary files /dev/null and b/doc/AVATAR/fig/choiceseqdiagram.jpg differ
diff --git a/doc/AVATAR/fig/controllerdiagram.jpg b/doc/AVATAR/fig/controllerdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fa98561cc7d0f3b2cfa7a77fa68825513a303f26
Binary files /dev/null and b/doc/AVATAR/fig/controllerdiagram.jpg differ
diff --git a/doc/AVATAR/fig/controlreq.jpg b/doc/AVATAR/fig/controlreq.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e0370efcde27fdaad0eb1240bad5180856ed32e1
Binary files /dev/null and b/doc/AVATAR/fig/controlreq.jpg differ
diff --git a/doc/AVATAR/fig/createfile.png b/doc/AVATAR/fig/createfile.png
new file mode 100644
index 0000000000000000000000000000000000000000..201c6077c23efa6b5bd420d01277e3756d9bd555
Binary files /dev/null and b/doc/AVATAR/fig/createfile.png differ
diff --git a/doc/AVATAR/fig/createmethod.png b/doc/AVATAR/fig/createmethod.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6c2af8a24406ef5372d62f7238655bbe867f0b3
Binary files /dev/null and b/doc/AVATAR/fig/createmethod.png differ
diff --git a/doc/AVATAR/fig/createusecase.png b/doc/AVATAR/fig/createusecase.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ce14cc9238114e9cdac1cb5ada73acfccfb9239
Binary files /dev/null and b/doc/AVATAR/fig/createusecase.png differ
diff --git a/doc/AVATAR/fig/environmentassumptions.jpg b/doc/AVATAR/fig/environmentassumptions.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..813198a740da2586405c0b5579eb2853e246c7a1
Binary files /dev/null and b/doc/AVATAR/fig/environmentassumptions.jpg differ
diff --git a/doc/AVATAR/fig/inputreq.jpg b/doc/AVATAR/fig/inputreq.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ac0e551577a897e5d8279c23d54c8bb4dd4e00c9
Binary files /dev/null and b/doc/AVATAR/fig/inputreq.jpg differ
diff --git a/doc/AVATAR/fig/interactivesim.png b/doc/AVATAR/fig/interactivesim.png
new file mode 100644
index 0000000000000000000000000000000000000000..81347d3b65a655bfee66901dae367ec678821152
Binary files /dev/null and b/doc/AVATAR/fig/interactivesim.png differ
diff --git a/doc/AVATAR/fig/latencycheckpoint.svg b/doc/AVATAR/fig/latencycheckpoint.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c81361636b74deb87dad89fbc85207d831aef654
--- /dev/null
+++ b/doc/AVATAR/fig/latencycheckpoint.svg
@@ -0,0 +1,1089 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Dialog"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   width="530.06403"
+   height="423.05258"
+   sodipodi:docname="latencycheckpoint.svg">
+  <metadata
+     id="metadata409">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="2048"
+     inkscape:window-height="1086"
+     id="namedview407"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="0.63429569"
+     inkscape:cx="-638.33908"
+     inkscape:cy="370.1195"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g15" />
+  <!--Generated by the Batik Graphics2D SVG Generator-->
+  <defs
+     id="genericDefs">
+    <defs
+       id="defs1">
+      <clipPath
+         id="clipPath1"
+         clipPathUnits="userSpaceOnUse">
+        <path
+           id="path9"
+           d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+    </defs>
+    <clipPath
+       id="clipPath1-4"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path9-6"
+         d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath1-9"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path9-5"
+         d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath3623"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3625"
+         d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath3627"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3629"
+         d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath1-2"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path9-56"
+         d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath3669"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3671"
+         d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath3673"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3675"
+         d="m 0,0 1759,0 0,1410 L 0,1410 0,0 z" />
+    </clipPath>
+  </defs>
+  <g
+     id="g15"
+     style="fill:#c1daf1;stroke:#c1daf1;font-family:sans-serif"
+     transform="translate(-17.5,-291.61827)">
+    <line
+       clip-path="url(#clipPath1-9)"
+       id="line313-5"
+       y2="275"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.55847013;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="235"
+       x2="277"
+       x1="273"
+       transform="matrix(0.99547903,0.03910594,-0.09498163,0.40985969,48.82634,237.83607)" />
+    <polygon
+       clip-path="url(#clipPath1-9)"
+       id="polygon315-6"
+       points="281,265 277,275 271,266 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       transform="matrix(0.99547903,0.09498163,-0.09498163,0.99547903,48.756666,69.119257)" />
+    <polygon
+       clip-path="url(#clipPath1-9)"
+       id="polygon317-0"
+       points="281,265 277,275 271,266 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       transform="matrix(0.99547903,0.09498163,-0.09498163,0.99547903,48.756666,69.119257)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect17"
+       height="354"
+       ry="2.5"
+       rx="2.5"
+       style="stroke:none"
+       width="577"
+       y="370"
+       x="18"
+       transform="matrix(0.91692203,0,0,0.8051578,1.4954035,72.091615)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect19"
+       height="354"
+       ry="2.5"
+       rx="2.5"
+       style="fill:none;stroke:#000000;stroke-width:1.16384006"
+       width="577"
+       y="370"
+       x="18"
+       transform="matrix(0.91692203,0,0,0.8051578,1.4954035,72.091615)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text21"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="385"
+       x="273"
+       transform="translate(-10.108238,-3.1592567)">Beverage</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line23"
+       y2="387"
+       style="fill:none;stroke:#000000;stroke-width:1.04432046"
+       y1="387"
+       x2="595"
+       x1="18"
+       transform="matrix(0.91692203,0,0,1,1.4954035,0)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line29"
+       y2="501"
+       style="fill:none;stroke:#80b4cd"
+       y1="501"
+       x2="499"
+       x1="368" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line33"
+       y2="521"
+       style="fill:none;stroke:#80b4cd"
+       y1="501"
+       x2="368"
+       x1="368" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line35"
+       y2="511"
+       style="fill:none;stroke:#80b4cd"
+       y1="501"
+       x2="509"
+       x1="499" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line37"
+       y2="511"
+       style="fill:none;stroke:#80b4cd"
+       y1="521"
+       x2="509"
+       x1="499" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line39"
+       y2="500"
+       style="fill:none;stroke:#000000"
+       y1="500"
+       x2="498"
+       x1="367" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line41"
+       y2="520"
+       style="fill:none;stroke:#000000"
+       y1="520"
+       x2="498"
+       x1="367" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line43"
+       y2="520"
+       style="fill:none;stroke:#000000"
+       y1="500"
+       x2="367"
+       x1="367" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line45"
+       y2="510"
+       style="fill:none;stroke:#000000"
+       y1="500"
+       x2="508"
+       x1="498" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line47"
+       y2="510"
+       style="fill:none;stroke:#000000"
+       y1="520"
+       x2="508"
+       x1="498" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text49"
+       xml:space="preserve"
+       style="fill:#000000;stroke:none"
+       y="515"
+       x="372">ejectCoin(nbOfCoins)</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text51"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="498"
+       x="489">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text53"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#ff0000;stroke:none"
+       y="499"
+       x="490">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text55"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="498"
+       x="497">L</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text57"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#ff0000;stroke:none"
+       y="499"
+       x="498">L</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line63"
+       y2="528"
+       style="fill:none;stroke:#80b4cd"
+       y1="528"
+       x2="193"
+       x1="52" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line65"
+       y2="548"
+       style="fill:none;stroke:#80b4cd"
+       y1="528"
+       x2="193"
+       x1="193" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line69"
+       y2="538"
+       style="fill:none;stroke:#80b4cd"
+       y1="528"
+       x2="62"
+       x1="52" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line71"
+       y2="538"
+       style="fill:none;stroke:#80b4cd"
+       y1="548"
+       x2="62"
+       x1="52" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line73"
+       y2="527"
+       style="fill:none;stroke:#000000"
+       y1="527"
+       x2="192"
+       x1="51" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line75"
+       y2="547"
+       style="fill:none;stroke:#000000"
+       y1="527"
+       x2="192"
+       x1="192" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line77"
+       y2="547"
+       style="fill:none;stroke:#000000"
+       y1="547"
+       x2="192"
+       x1="51" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line79"
+       y2="537"
+       style="fill:none;stroke:#000000"
+       y1="527"
+       x2="61"
+       x1="51" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line81"
+       y2="537"
+       style="fill:none;stroke:#000000"
+       y1="547"
+       x2="61"
+       x1="51" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text83"
+       xml:space="preserve"
+       style="fill:#000000;stroke:none"
+       y="542"
+       x="63">pushCoffeeButton()</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text85"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="525"
+       x="173">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text87"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#00e800;stroke:none"
+       y="526"
+       x="174">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text89"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="525"
+       x="181">L</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text91"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#404040;stroke:none"
+       y="526"
+       x="182">L</text>
+    <circle
+       sodipodi:ry="7.5"
+       sodipodi:rx="7.5"
+       sodipodi:cy="406.5"
+       sodipodi:cx="256.5"
+       clip-path="url(#clipPath1)"
+       id="circle93"
+       cy="406.5"
+       cx="256.5"
+       r="7.5"
+       style="fill:#000000;stroke:none"
+       transform="translate(42.961036,-1.5765518)"
+       d="m 264,406.5 c 0,4.14214 -3.35786,7.5 -7.5,7.5 -4.14214,0 -7.5,-3.35786 -7.5,-7.5 0,-4.14214 3.35786,-7.5 7.5,-7.5 4.14214,0 7.5,3.35786 7.5,7.5 z" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line95"
+       y2="419"
+       style="fill:none;stroke:#000000;stroke-width:0.65273952"
+       y1="414"
+       x2="256"
+       x1="256"
+       transform="matrix(1,0,0,2.3470385,42.961036,-559.13435)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect97"
+       height="40"
+       ry="2.5"
+       rx="2.5"
+       style="fill:#c1dafb;stroke:none"
+       width="132"
+       y="435"
+       x="189"
+       transform="matrix(1.0654517,0,0,1,21.951036,-1.5765518)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect99"
+       height="40"
+       ry="2.5"
+       rx="2.5"
+       style="fill:none;stroke:#000000;stroke-width:0.96640682"
+       width="132"
+       y="435"
+       x="189"
+       transform="matrix(1.0707301,0,0,1,20.256682,-1.5765518)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text101"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="450"
+       x="183"
+       transform="translate(42.961036,-1.5765518)">WaitingForSelection</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line103"
+       y2="452"
+       style="fill:none;stroke:#000000;stroke-width:0.96879774"
+       y1="452"
+       x2="321"
+       x1="189"
+       transform="matrix(1.0654517,0,0,1,21.951036,-1.5765518)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line109"
+       y2="528"
+       style="fill:none;stroke:#80b4cd"
+       y1="528"
+       x2="356"
+       x1="232" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line111"
+       y2="548"
+       style="fill:none;stroke:#80b4cd"
+       y1="528"
+       x2="356"
+       x1="356" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line113"
+       y2="548"
+       style="fill:none;stroke:#80b4cd"
+       y1="548"
+       x2="356"
+       x1="232" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line115"
+       y2="538"
+       style="fill:none;stroke:#80b4cd"
+       y1="528"
+       x2="242"
+       x1="232" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line117"
+       y2="538"
+       style="fill:none;stroke:#80b4cd"
+       y1="548"
+       x2="242"
+       x1="232" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line119"
+       y2="527"
+       style="fill:none;stroke:#000000"
+       y1="527"
+       x2="355"
+       x1="231" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line121"
+       y2="547"
+       style="fill:none;stroke:#000000"
+       y1="527"
+       x2="355"
+       x1="355" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line123"
+       y2="547"
+       style="fill:none;stroke:#000000"
+       y1="547"
+       x2="355"
+       x1="231" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line125"
+       y2="537"
+       style="fill:none;stroke:#000000"
+       y1="527"
+       x2="241"
+       x1="231" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line127"
+       y2="537"
+       style="fill:none;stroke:#000000"
+       y1="547"
+       x2="241"
+       x1="231" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text129"
+       xml:space="preserve"
+       style="fill:#000000;stroke:none"
+       y="542"
+       x="243">pushTeaButton()</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text131"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="525"
+       x="336">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text133"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#00e800;stroke:none"
+       y="526"
+       x="337">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text135"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="525"
+       x="344">L</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text137"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#404040;stroke:none"
+       y="526"
+       x="345">L</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text139"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="368"
+       x="576"
+       transform="translate(-46.508277,-2.7589656)">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text141"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#ff0000;stroke:none"
+       y="369"
+       x="577"
+       transform="translate(-46.508277,-2.7589656)">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text143"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="368"
+       x="584"
+       transform="translate(-46.508277,-2.7589656)">L</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text145"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#ff0000;stroke:none"
+       y="369"
+       x="585"
+       transform="translate(-46.508277,-2.7589656)">L</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect155"
+       height="40"
+       ry="2.5"
+       rx="2.5"
+       style="stroke:none"
+       width="137"
+       y="748"
+       x="221"
+       transform="matrix(1.02848,0,0,1,-14.42824,-73.829139)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect157"
+       height="40"
+       ry="2.5"
+       rx="2.5"
+       style="fill:none;stroke:#000000;stroke-width:0.9860571"
+       width="137"
+       y="748"
+       x="221"
+       transform="matrix(1.02848,0,0,1,-14.42824,-73.829139)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text159"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="763"
+       x="219"
+       transform="translate(-4.2323832,-73.829139)">WaitingForFirstCoin</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line161"
+       y2="765"
+       style="fill:none;stroke:#000000;stroke-width:0.9860571"
+       y1="765"
+       x2="358"
+       x1="221"
+       transform="matrix(1.02848,0,0,1,-14.42824,-73.829139)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon163"
+       points="209,748 217,753 209,758 "
+       style="fill:#0000ff;stroke:none"
+       transform="translate(-8.2734983,-71.32086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line165"
+       y2="768"
+       style="fill:none;stroke:#000000"
+       y1="748"
+       x2="209"
+       x1="209"
+       transform="translate(-8.2734983,-71.32086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line167"
+       y2="753"
+       style="fill:none;stroke:#000000"
+       y1="748"
+       x2="217"
+       x1="209"
+       transform="translate(-8.2734983,-71.32086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line169"
+       y2="753"
+       style="fill:none;stroke:#000000"
+       y1="758"
+       x2="217"
+       x1="209"
+       transform="translate(-8.2734983,-71.32086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line203"
+       y2="281"
+       style="fill:none;stroke:#80b4cd"
+       y1="281"
+       x2="319"
+       x1="237"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line205"
+       y2="301"
+       style="fill:none;stroke:#80b4cd"
+       y1="281"
+       x2="319"
+       x1="319"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line207"
+       y2="301"
+       style="fill:none;stroke:#80b4cd"
+       y1="301"
+       x2="319"
+       x1="237"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line209"
+       y2="291"
+       style="fill:none;stroke:#80b4cd"
+       y1="281"
+       x2="247"
+       x1="237"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line211"
+       y2="291"
+       style="fill:none;stroke:#80b4cd"
+       y1="301"
+       x2="247"
+       x1="237"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line213"
+       y2="280"
+       style="fill:none;stroke:#000000"
+       y1="280"
+       x2="318"
+       x1="236"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line215"
+       y2="300"
+       style="fill:none;stroke:#000000"
+       y1="280"
+       x2="318"
+       x1="318"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line217"
+       y2="300"
+       style="fill:none;stroke:#000000"
+       y1="300"
+       x2="318"
+       x1="236"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line219"
+       y2="290"
+       style="fill:none;stroke:#000000"
+       y1="280"
+       x2="246"
+       x1="236"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line221"
+       y2="290"
+       style="fill:none;stroke:#000000"
+       y1="300"
+       x2="246"
+       x1="236"
+       transform="translate(20.592214,43.150313)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text223"
+       xml:space="preserve"
+       style="fill:#000000;stroke:none"
+       y="295"
+       x="248"
+       transform="translate(20.592214,43.150313)">getCoin(x)</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text225"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="278"
+       x="299"
+       transform="translate(20.592214,43.150313)">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text227"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#00e800;stroke:none"
+       y="279"
+       x="300"
+       transform="translate(20.592214,43.150313)">R</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text229"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#000000;stroke:none"
+       y="278"
+       x="307"
+       transform="translate(20.592214,43.150313)">L</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text231"
+       xml:space="preserve"
+       style="font-weight:bold;fill:#404040;stroke:none"
+       y="279"
+       x="308"
+       transform="translate(20.592214,43.150313)">L</text>
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon233"
+       points="232,285 224,290 224,280 "
+       style="fill:#0000ff;stroke:none"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line235"
+       y2="300"
+       style="fill:none;stroke:#000000"
+       y1="280"
+       x2="224"
+       x1="224"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line237"
+       y2="285"
+       style="fill:none;stroke:#000000"
+       y1="280"
+       x2="232"
+       x1="224"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line239"
+       y2="285"
+       style="fill:none;stroke:#000000"
+       y1="290"
+       x2="232"
+       x1="224"
+       transform="translate(20.592214,43.150313)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line313"
+       y2="275"
+       style="fill:none;stroke:#000000;stroke-width:1.55847013"
+       y1="235"
+       x2="277"
+       x1="273"
+       transform="matrix(0.99547903,0.03910594,-0.09498163,0.40985969,48.720749,189.6844)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon315"
+       points="271,266 281,265 277,275 "
+       style="fill:#000000;stroke:none"
+       transform="matrix(0.99547903,0.09498163,-0.09498163,0.99547903,48.720749,21.734009)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon317"
+       points="271,266 281,265 277,275 "
+       style="fill:none;stroke:#000000"
+       transform="matrix(0.99547903,0.09498163,-0.09498163,0.99547903,48.720749,21.734009)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon345"
+       points="250,426 260,426 255,435 "
+       style="fill:#000000;stroke:none"
+       transform="translate(43.797129,-3.1093887)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon347"
+       points="250,426 260,426 255,435 "
+       style="fill:none;stroke:#000000"
+       transform="translate(43.797129,-3.1093887)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line349"
+       y2="522"
+       style="fill:none;stroke:#000000;stroke-width:0.98073441"
+       y1="475"
+       x2="121"
+       x1="222"
+       transform="matrix(1.0188733,-0.09751862,0.09827718,1.011009,-50.7992,7.7384624)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon351"
+       points="126,513 130,522 121,522 "
+       style="fill:#000000;stroke:none"
+       transform="matrix(0.99538026,-0.09601112,0.09601112,0.99538026,-51.010639,17.980572)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon353"
+       points="126,513 130,522 121,522 "
+       style="fill:none;stroke:#000000"
+       transform="matrix(0.99538026,-0.09601112,0.09601112,0.99538026,-51.010639,17.980572)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line355"
+       y2="748"
+       style="fill:none;stroke:#000000;stroke-width:1.39377868"
+       y1="552"
+       x2="255"
+       x1="121"
+       transform="matrix(0.84089278,0,0,0.61216952,19.350508,209.74691)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon357"
+       points="254,738 255,748 245,743 "
+       style="fill:#000000;stroke:none"
+       transform="translate(-16.750863,-75.181812)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon359"
+       points="254,738 255,748 245,743 "
+       style="fill:none;stroke:#000000"
+       transform="translate(-16.750863,-75.181812)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text361"
+       xml:space="preserve"
+       style="fill:#694b0b;stroke:none"
+       y="587"
+       x="32">after (coffeeMinDelay,coffeeMaxDelay)</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text363"
+       xml:space="preserve"
+       style="fill:#7710f3;stroke:none"
+       y="602"
+       x="32">nbOfCoins = 0</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text365"
+       xml:space="preserve"
+       style="fill:#7710f3;stroke:none"
+       y="617"
+       x="32">beverageReady()</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line373"
+       y2="748"
+       style="fill:none;stroke:#000000;stroke-width:6.07575417"
+       y1="552"
+       x2="289"
+       x1="293"
+       transform="matrix(-0.04511605,0,0,0.60043863,305.20564,217.36251)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon375"
+       points="284,739 294,739 289,748 "
+       style="fill:#000000;stroke:none"
+       transform="translate(3.1531035,-75.083278)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon377"
+       points="284,739 294,739 289,748 "
+       style="fill:none;stroke:#000000"
+       transform="translate(3.1531035,-75.083278)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text379"
+       xml:space="preserve"
+       style="fill:#694b0b;stroke:none"
+       y="594"
+       x="284"
+       transform="translate(11.035862,8.6710348)">after (teaMinDelay,teaMaxDelay)</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text381"
+       xml:space="preserve"
+       style="fill:#7710f3;stroke:none"
+       y="609"
+       x="284"
+       transform="translate(11.035862,8.6710348)">nbOfCoins = 0</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text383"
+       xml:space="preserve"
+       style="fill:#7710f3;stroke:none"
+       y="624"
+       x="284"
+       transform="translate(11.035862,8.6710348)">beverageReady()</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line385"
+       y2="495"
+       style="fill:none;stroke:#000000;stroke-width:1.42803943"
+       y1="455"
+       x2="437"
+       x1="321"
+       transform="matrix(0.58289926,0,0,0.84125193,177.04744,80.113122)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon387"
+       points="427,496 430,487 437,495 "
+       style="fill:#000000;stroke:none"
+       transform="matrix(0.93419784,0.35675538,-0.35675538,0.93419784,203.28409,-119.54698)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon389"
+       points="427,496 430,487 437,495 "
+       style="fill:none;stroke:#000000"
+       transform="matrix(0.93419784,0.35675538,-0.35675538,0.93419784,203.28409,-119.54698)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text391"
+       xml:space="preserve"
+       style="fill:#694b0b;stroke:none"
+       y="448"
+       x="395"
+       transform="translate(-19.312759,20.101035)">after (coinDelay)</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line393"
+       y2="748"
+       style="fill:none;stroke:#000000;stroke-width:1.41437519"
+       y1="525"
+       x2="323"
+       x1="437"
+       transform="matrix(0.75683764,0,0,0.66049275,104.6854,175.0882)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon395"
+       points="331,742 323,748 322,738 "
+       style="fill:#000000;stroke:none"
+       transform="translate(24.436552,-75.083278)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon397"
+       points="331,742 323,748 322,738 "
+       style="fill:none;stroke:#000000"
+       transform="translate(24.436552,-75.083278)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text399"
+       xml:space="preserve"
+       style="fill:#7710f3;stroke:none"
+       y="552"
+       x="420"
+       transform="translate(7.2461379,6.6887427)">nbOfCoins = 0</text>
+    <text
+       transform="translate(44.442105,-1.89345)"
+       clip-path="url(#clipPath1-4)"
+       id="text223-2"
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="295"
+       x="248">...</text>
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line313-53"
+       y2="275"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:0.96735489;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="235"
+       x2="277"
+       x1="273"
+       transform="matrix(0.99547903,0.10150047,-0.09498163,1.0638013,42.915765,196.70673)" />
+    <polygon
+       clip-path="url(#clipPath1-2)"
+       id="polygon315-2"
+       points="277,275 271,266 281,265 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       transform="matrix(0.99547903,0.09498163,-0.09498163,0.99547903,42.915765,225.87356)" />
+    <polygon
+       clip-path="url(#clipPath1-2)"
+       id="polygon317-3"
+       points="277,275 271,266 281,265 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       transform="matrix(0.99547903,0.09498163,-0.09498163,0.99547903,42.915765,225.87356)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line31"
+       y2="521"
+       style="fill:none;stroke:#80b4cd"
+       y1="521"
+       x2="499"
+       x1="368" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line67"
+       y2="548"
+       style="fill:none;stroke:#80b4cd"
+       y1="548"
+       x2="193"
+       x1="52" />
+  </g>
+</svg>
diff --git a/doc/AVATAR/fig/latencymeasure.png b/doc/AVATAR/fig/latencymeasure.png
new file mode 100644
index 0000000000000000000000000000000000000000..e1ee20792681ea3a83d8abb3c1231d6fca3110b1
Binary files /dev/null and b/doc/AVATAR/fig/latencymeasure.png differ
diff --git a/doc/AVATAR/fig/latencyreq.svg b/doc/AVATAR/fig/latencyreq.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5aee1f2e93f1d9f453d19b7d369601e4af2368ad
--- /dev/null
+++ b/doc/AVATAR/fig/latencyreq.svg
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="170.92467"
+   height="121.43608"
+   viewbox="262 35 344 597"
+   id="svg2"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="latencyreq.svg">
+  <metadata
+     id="metadata88">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs86" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1918"
+     inkscape:window-height="1040"
+     id="namedview84"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="2.1123696"
+     inkscape:cx="265.14424"
+     inkscape:cy="38.045502"
+     inkscape:window-x="123"
+     inkscape:window-y="52"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg2" />
+  <rect
+     style="fill:#e4f1f2"
+     x="1.1852627"
+     y="0.21649158"
+     width="169.01634"
+     height="27.756596"
+     id="rect588" />
+  <rect
+     style="fill:#cdc46d"
+     x="1.1852627"
+     y="28.286575"
+     width="169.01634"
+     height="92.509399"
+     id="rect590" />
+  <line
+     style="fill:none;stroke:#000000;stroke-width:1"
+     x1="0.5"
+     y1="28.080811"
+     x2="170.42467"
+     y2="28.080811"
+     id="line586" />
+  <rect
+     style="fill:none;stroke:#000000;stroke-width:0.99999976"
+     x="0.50099754"
+     y="0.49999988"
+     width="169.72462"
+     height="120.43608"
+     id="rect584" />
+  <text
+     x="36.275017"
+     y="10.727005"
+     style="font-size:10px;font-family:SansSerif"
+     id="text592">&lt;&lt;Requirement&gt;&gt;</text>
+  <text
+     x="14.090246"
+     y="24.391359"
+     style="font-size:12px;font-family:SansSerif"
+     id="text594">LatencyCoffeeMachine</text>
+  <text
+     x="5.5013599"
+     y="40.080795"
+     style="font-size:12px;font-family:SansSerif"
+     id="text596">ID=17</text>
+  <text
+     x="3.716814"
+     y="52.794571"
+     style="font-size:12px;font-family:SansSerif"
+     id="text598">Text=&quot;The Coffee Machine</text>
+  <text
+     x="5.5013599"
+     y="63.501785"
+     style="font-size:12px;font-family:SansSerif"
+     id="text3263">must take less 10 seconds</text>
+  <text
+     x="4.7875233"
+     y="75.03212"
+     style="font-size:12px;font-family:SansSerif"
+     id="text600-6">to finish processing each</text>
+  <text
+     x="4.911459"
+     y="86.096458"
+     style="font-size:12px;font-family:SansSerif"
+     id="text602-8">order after payment is</text>
+  <text
+     x="5.148159"
+     y="97.458107"
+     style="font-size:12px;font-family:SansSerif"
+     id="text3066">received.&quot;</text>
+  <text
+     x="3.716814"
+     y="100.35051"
+     style="font-size:12px;font-family:SansSerif"
+     id="text3267" />
+  <text
+     x="4.0737324"
+     y="113.06432"
+     style="font-size:12px;font-family:SansSerif"
+     id="text604-3">Kind=&quot;Performance&quot;</text>
+</svg>
diff --git a/doc/AVATAR/fig/latencyresults.png b/doc/AVATAR/fig/latencyresults.png
new file mode 100644
index 0000000000000000000000000000000000000000..348e79c5f73e33ae1f9e3310b830df3ab18c90fd
Binary files /dev/null and b/doc/AVATAR/fig/latencyresults.png differ
diff --git a/doc/AVATAR/fig/logotpt.pdf b/doc/AVATAR/fig/logotpt.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..47bcada07880a6f6e21347293a9dd79197a0f34c
Binary files /dev/null and b/doc/AVATAR/fig/logotpt.pdf differ
diff --git a/doc/AVATAR/fig/mechdiagram.jpg b/doc/AVATAR/fig/mechdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..550645448689a5a28bb1dbed23f546f55a7b799a
Binary files /dev/null and b/doc/AVATAR/fig/mechdiagram.jpg differ
diff --git a/doc/AVATAR/fig/methoddiagram.png b/doc/AVATAR/fig/methoddiagram.png
new file mode 100644
index 0000000000000000000000000000000000000000..686d270eb3be13b8223d3eef9d95830afa883190
Binary files /dev/null and b/doc/AVATAR/fig/methoddiagram.png differ
diff --git a/doc/AVATAR/fig/numdiagram.jpg b/doc/AVATAR/fig/numdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7b50f2b96cf416aa3b05100f840ba4404a93ca78
Binary files /dev/null and b/doc/AVATAR/fig/numdiagram.jpg differ
diff --git a/doc/AVATAR/fig/outputreq.jpg b/doc/AVATAR/fig/outputreq.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5645146079a8cf6952bc37bdd44c728d6f3460ba
Binary files /dev/null and b/doc/AVATAR/fig/outputreq.jpg differ
diff --git a/doc/AVATAR/fig/paymentseqdiagram.jpg b/doc/AVATAR/fig/paymentseqdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d92ee8769bdd8752b1668b117cac6172278aa855
Binary files /dev/null and b/doc/AVATAR/fig/paymentseqdiagram.jpg differ
diff --git a/doc/AVATAR/fig/portconn.png b/doc/AVATAR/fig/portconn.png
new file mode 100644
index 0000000000000000000000000000000000000000..ead376f331c9676de5ba389235ba3307727fc0b5
Binary files /dev/null and b/doc/AVATAR/fig/portconn.png differ
diff --git a/doc/AVATAR/fig/pushdiagram.jpg b/doc/AVATAR/fig/pushdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1e37c8c8dd3a50e1b90d1a650ae7241364888d66
Binary files /dev/null and b/doc/AVATAR/fig/pushdiagram.jpg differ
diff --git a/doc/AVATAR/fig/reqbox.jpg b/doc/AVATAR/fig/reqbox.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c7904a1c97f36b545004349f8bfdd0f5e7ec6998
Binary files /dev/null and b/doc/AVATAR/fig/reqbox.jpg differ
diff --git a/doc/AVATAR/fig/reqdiagram.jpg b/doc/AVATAR/fig/reqdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..8062f796d850d02dd7c480abf6a7ab33dce281b5
Binary files /dev/null and b/doc/AVATAR/fig/reqdiagram.jpg differ
diff --git a/doc/AVATAR/fig/reqgeneral.jpg b/doc/AVATAR/fig/reqgeneral.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..075ce532a4b85fa78749844905eaff938ecaba09
Binary files /dev/null and b/doc/AVATAR/fig/reqgeneral.jpg differ
diff --git a/doc/AVATAR/fig/rg.png b/doc/AVATAR/fig/rg.png
new file mode 100644
index 0000000000000000000000000000000000000000..254ba2554006b57428921a05d73ef9dbe7e46e3f
Binary files /dev/null and b/doc/AVATAR/fig/rg.png differ
diff --git a/doc/AVATAR/fig/rg1.jpg b/doc/AVATAR/fig/rg1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..ee551930ae6170577a4c00a73737c4fcdf871d6f
Binary files /dev/null and b/doc/AVATAR/fig/rg1.jpg differ
diff --git a/doc/AVATAR/fig/selectdiagram.jpg b/doc/AVATAR/fig/selectdiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..490434c57a080189b9613dec8fec1c7cde405eaa
Binary files /dev/null and b/doc/AVATAR/fig/selectdiagram.jpg differ
diff --git a/doc/AVATAR/fig/setattribute.png b/doc/AVATAR/fig/setattribute.png
new file mode 100644
index 0000000000000000000000000000000000000000..7994033f36d61c220823cd1c1d9a2ed212435cdb
Binary files /dev/null and b/doc/AVATAR/fig/setattribute.png differ
diff --git a/doc/AVATAR/fig/setsignal.png b/doc/AVATAR/fig/setsignal.png
new file mode 100644
index 0000000000000000000000000000000000000000..2517028665cb28c7278e221fae5e1c467c3d4aab
Binary files /dev/null and b/doc/AVATAR/fig/setsignal.png differ
diff --git a/doc/AVATAR/fig/simstep1.png b/doc/AVATAR/fig/simstep1.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9ea1421d1f7e0b588fab3e5f004dc8ce795c63a
Binary files /dev/null and b/doc/AVATAR/fig/simstep1.png differ
diff --git a/doc/AVATAR/fig/simstep2.png b/doc/AVATAR/fig/simstep2.png
new file mode 100644
index 0000000000000000000000000000000000000000..43bffd45b7f391e8ffc8838a3693c20d1225e923
Binary files /dev/null and b/doc/AVATAR/fig/simstep2.png differ
diff --git a/doc/AVATAR/fig/structelementsblock.png b/doc/AVATAR/fig/structelementsblock.png
new file mode 100644
index 0000000000000000000000000000000000000000..233307ef5d854fd64e84aca59951b8f1d63bc3ad
Binary files /dev/null and b/doc/AVATAR/fig/structelementsblock.png differ
diff --git a/doc/AVATAR/fig/structusecase.jpg b/doc/AVATAR/fig/structusecase.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..499067baed95569324f0d81425fcffc79659b7b6
Binary files /dev/null and b/doc/AVATAR/fig/structusecase.jpg differ
diff --git a/doc/AVATAR/fig/syntaxanalysis.jpg b/doc/AVATAR/fig/syntaxanalysis.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9a6d8e955c871cb733b7397024329855a3c9075f
Binary files /dev/null and b/doc/AVATAR/fig/syntaxanalysis.jpg differ
diff --git a/doc/AVATAR/fig/syntaxerror.png b/doc/AVATAR/fig/syntaxerror.png
new file mode 100644
index 0000000000000000000000000000000000000000..dde075304cb87e62fb10691665b490be8ebb32b7
Binary files /dev/null and b/doc/AVATAR/fig/syntaxerror.png differ
diff --git a/doc/AVATAR/fig/systemassumptions.jpg b/doc/AVATAR/fig/systemassumptions.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..853ff1369ad7b97dd83e30e0ac1847caee96edbf
Binary files /dev/null and b/doc/AVATAR/fig/systemassumptions.jpg differ
diff --git a/doc/AVATAR/fig/tokendiagram.jpg b/doc/AVATAR/fig/tokendiagram.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..12ab33d7dcd6a241d206dd9045ad185e7debf81d
Binary files /dev/null and b/doc/AVATAR/fig/tokendiagram.jpg differ
diff --git a/doc/AVATAR/fig/usecase.jpg b/doc/AVATAR/fig/usecase.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c1294fd9a43983fdd17975fdd0faa281ca3056f4
Binary files /dev/null and b/doc/AVATAR/fig/usecase.jpg differ
diff --git a/doc/SysMLSec/fig/automaticgeneration.png b/doc/SysMLSec/fig/automaticgeneration.png
index 23229151f1a89940273842662b3de229d74834e8..8eab6689642463fe8abaf0bdc0afee20e0927adb 100644
Binary files a/doc/SysMLSec/fig/automaticgeneration.png and b/doc/SysMLSec/fig/automaticgeneration.png differ
diff --git a/doc/SysMLSec/fig/hsmact.svg b/doc/SysMLSec/fig/hsmact.svg
new file mode 100644
index 0000000000000000000000000000000000000000..05f0598cd9ee47f9eae8ac569a5d99d7763ecdfe
--- /dev/null
+++ b/doc/SysMLSec/fig/hsmact.svg
@@ -0,0 +1,844 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Dialog"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   width="236.95963"
+   height="279.29044"
+   sodipodi:docname="hsmact.svg">
+  <metadata
+     id="metadata205">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1041"
+     id="namedview203"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="0.63429569"
+     inkscape:cx="-245.62252"
+     inkscape:cy="98.276187"
+     inkscape:window-x="2048"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g15" />
+  <!--Generated by the Batik Graphics2D SVG Generator-->
+  <defs
+     id="genericDefs">
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-3">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-9"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3194">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3196"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3198">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3200"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-3-3">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-9-0"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3240">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3242"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-1">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-5"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-3-3-7">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-9-0-1"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3284">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3286"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-3-3-7-5">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-9-0-1-7"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3319">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3321"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-4">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-8"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+  </defs>
+  <g
+     id="g5"
+     transform="translate(-101.19736,-134.85932)">
+    <defs
+       id="defs1">
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath1">
+        <path
+           d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+           id="path9"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+    </defs>
+    <g
+       style="font-family:sans-serif"
+       id="g15"
+       transform="translate(-63.850347,7.094483)">
+      <line
+         x1="226"
+         x2="236"
+         y1="621"
+         style="fill:none;stroke:#68e5ff"
+         y2="611"
+         id="line139"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.107289,-251.78954)" />
+      <polygon
+         style="stroke:none"
+         points="319,181 315,190 310,181 "
+         id="polygon25"
+         clip-path="url(#clipPath1)"
+         transform="translate(-0.1731605,8.4128465)" />
+      <polygon
+         style="fill:none"
+         points="319,181 315,190 310,181 "
+         id="polygon27"
+         clip-path="url(#clipPath1)"
+         transform="translate(-0.1731605,8.4128465)" />
+      <line
+         x1="275"
+         x2="165"
+         y1="215"
+         style="fill:none;stroke-width:2.87090135"
+         y2="295"
+         id="line29"
+         clip-path="url(#clipPath1)"
+         transform="matrix(0.32414301,0,0,0.37430602,185.368,134.81981)" />
+      <polygon
+         style="stroke:none"
+         points="169,285 174,293 165,295 "
+         id="polygon31"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.659098,-47.536051)" />
+      <polygon
+         style="fill:none"
+         points="169,285 174,293 165,295 "
+         id="polygon33"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.659098,-47.536051)" />
+      <circle
+         style="stroke:none"
+         r="7.5"
+         cx="407.5"
+         cy="57.5"
+         id="circle53"
+         clip-path="url(#clipPath1)"
+         d="m 415,57.5 c 0,4.142136 -3.35786,7.5 -7.5,7.5 -4.14214,0 -7.5,-3.357864 -7.5,-7.5 0,-4.142136 3.35786,-7.5 7.5,-7.5 4.14214,0 7.5,3.357864 7.5,7.5 z"
+         sodipodi:cx="407.5"
+         sodipodi:cy="57.5"
+         sodipodi:rx="7.5"
+         sodipodi:ry="7.5"
+         transform="translate(-93.078,77.764839)" />
+      <line
+         x1="407"
+         x2="407"
+         y1="65"
+         style="fill:none;stroke-width:0.62101328"
+         y2="70"
+         id="line55"
+         clip-path="url(#clipPath1)"
+         transform="matrix(1,0,0,2.5929742,-92.388259,-29.810186)" />
+      <rect
+         x="229"
+         y="100"
+         width="173"
+         style="fill:#c4a67a;stroke:none"
+         rx="2.5"
+         ry="2.5"
+         height="20"
+         id="rect57"
+         clip-path="url(#clipPath1)"
+         transform="translate(-0.49267243,60.164873)" />
+      <rect
+         x="228"
+         y="99"
+         width="173"
+         style="fill:none;stroke:#c4a67a"
+         rx="2.5"
+         ry="2.5"
+         height="20"
+         id="rect59"
+         clip-path="url(#clipPath1)"
+         transform="translate(0,60.75608)" />
+      <rect
+         x="229"
+         y="100"
+         width="173"
+         style="fill:none"
+         rx="2.5"
+         ry="2.5"
+         height="20"
+         id="rect61"
+         clip-path="url(#clipPath1)"
+         transform="translate(-0.49267243,60.164873)" />
+      <line
+         x1="315"
+         x2="315"
+         y1="120"
+         style="fill:none;stroke-width:0.68733406"
+         y2="125"
+         id="line65"
+         clip-path="url(#clipPath1)"
+         transform="matrix(1,0,0,2.1167242,0,-72.69246)" />
+      <text
+         x="234"
+         y="115"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text67"
+         clip-path="url(#clipPath1)"
+         transform="translate(-1.8721552,59.770735)">getReqArg (channelIndex)</text>
+      <polygon
+         style="fill:#c7f369;stroke:none"
+         points="332,215 315,232 300,215 315,200 "
+         id="polygon69"
+         clip-path="url(#clipPath1)" />
+      <line
+         x1="315"
+         x2="330"
+         y1="200"
+         style="fill:none"
+         y2="215"
+         id="line71"
+         clip-path="url(#clipPath1)" />
+      <line
+         x1="300"
+         x2="315"
+         y1="215"
+         style="fill:none"
+         y2="230"
+         id="line73"
+         clip-path="url(#clipPath1)" />
+      <line
+         x1="315"
+         x2="300"
+         y1="200"
+         style="fill:none"
+         y2="215"
+         id="line75"
+         clip-path="url(#clipPath1)" />
+      <line
+         x1="330"
+         x2="315"
+         y1="215"
+         style="fill:none"
+         y2="230"
+         id="line77"
+         clip-path="url(#clipPath1)" />
+      <line
+         x1="300"
+         x2="275"
+         y1="215"
+         style="fill:none"
+         y2="215"
+         id="line81"
+         clip-path="url(#clipPath1)" />
+      <line
+         x1="330"
+         x2="355"
+         y1="215"
+         style="fill:none"
+         y2="215"
+         id="line83"
+         clip-path="url(#clipPath1)" />
+      <line
+         x1="315"
+         x2="315"
+         y1="230"
+         style="fill:none"
+         y2="255"
+         id="line85"
+         clip-path="url(#clipPath1)" />
+      <text
+         x="275"
+         y="210"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text87"
+         clip-path="url(#clipPath1)"
+         transform="translate(-97.647676,0.19706897)">[channelIndex==0]</text>
+      <text
+         x="335"
+         y="210"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text89"
+         clip-path="url(#clipPath1)">[ ]</text>
+      <text
+         x="320"
+         y="245"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text91"
+         clip-path="url(#clipPath1)">[ ]</text>
+      <polygon
+         style="fill:#68e5ff;stroke:none"
+         points="228,300 228,320 103,320 113,310 103,300 "
+         id="polygon93"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="104"
+         x2="229"
+         y1="301"
+         style="fill:none;stroke:#68e5ff"
+         y2="301"
+         id="line99"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="229"
+         x2="229"
+         y1="301"
+         style="fill:none;stroke:#68e5ff"
+         y2="321"
+         id="line101"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="104"
+         x2="229"
+         y1="321"
+         style="fill:none;stroke:#68e5ff"
+         y2="321"
+         id="line103"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="104"
+         x2="114"
+         y1="301"
+         style="fill:none;stroke:#68e5ff"
+         y2="311"
+         id="line105"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="104"
+         x2="114"
+         y1="321"
+         style="fill:none;stroke:#68e5ff"
+         y2="311"
+         id="line107"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="103"
+         x2="228"
+         y1="300"
+         style="fill:none"
+         y2="300"
+         id="line109"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="228"
+         x2="228"
+         y1="300"
+         style="fill:none"
+         y2="320"
+         id="line111"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="103"
+         x2="228"
+         y1="320"
+         style="fill:none"
+         y2="320"
+         id="line113"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="103"
+         x2="113"
+         y1="300"
+         style="fill:none"
+         y2="310"
+         id="line115"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <line
+         x1="103"
+         x2="113"
+         y1="320"
+         style="fill:none"
+         y2="310"
+         id="line117"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)" />
+      <text
+         x="108"
+         y="300"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text119"
+         clip-path="url(#clipPath1)"
+         transform="translate(66.330032,-53.509942)">chl</text>
+      <text
+         x="115"
+         y="315"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text121"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)">data_comm_T1(1) </text>
+      <text
+         x="196"
+         y="331"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text123"
+         clip-path="url(#clipPath1)"
+         transform="translate(71.067891,-51.280361)">sec:hsmSec_comm</text>
+      <polygon
+         style="fill:#68e5ff;stroke:none"
+         points="235,610 225,620 95,620 95,600 225,600 "
+         id="polygon125"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.547706,-251.54568)" />
+      <line
+         x1="96"
+         x2="226"
+         y1="601"
+         style="fill:none;stroke:#68e5ff;stroke-width:1.00334084"
+         y2="601"
+         id="line131"
+         clip-path="url(#clipPath1)"
+         transform="matrix(0.99335168,0,0,1,71.182621,-251.54568)" />
+      <line
+         x1="96"
+         x2="226"
+         y1="621"
+         style="fill:none;stroke:#68e5ff;stroke-width:1.00359595"
+         y2="621"
+         id="line133"
+         clip-path="url(#clipPath1)"
+         transform="matrix(0.99284673,0,0,1,71.230853,-251.54568)" />
+      <line
+         x1="96"
+         x2="96"
+         y1="601"
+         style="fill:none;stroke:#68e5ff"
+         y2="621"
+         id="line135"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.547706,-251.54568)" />
+      <line
+         x1="95"
+         x2="225"
+         y1="600"
+         style="fill:none"
+         y2="600"
+         id="line141"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.547706,-251.54568)" />
+      <line
+         x1="95"
+         x2="225"
+         y1="620"
+         style="fill:none"
+         y2="620"
+         id="line143"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.547706,-251.54568)" />
+      <line
+         x1="95"
+         x2="95"
+         y1="600"
+         style="fill:none"
+         y2="620"
+         id="line145"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.547706,-251.54568)" />
+      <line
+         x1="225"
+         x2="235"
+         y1="600"
+         style="fill:none;stroke-width:1.03990936"
+         y2="610"
+         id="line147"
+         clip-path="url(#clipPath1)"
+         transform="matrix(0.95122792,0,0,0.97213024,82.009145,-234.54513)" />
+      <line
+         x1="225"
+         x2="235"
+         y1="620"
+         style="fill:none;stroke-width:1.04376268"
+         y2="610"
+         id="line149"
+         clip-path="url(#clipPath1)"
+         transform="matrix(0.94826939,0,0,0.96797629,82.704398,-232.01122)" />
+      <text
+         x="100"
+         y="600"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text151"
+         clip-path="url(#clipPath1)"
+         transform="translate(65.531149,-253.77527)">chl</text>
+      <text
+         x="100"
+         y="615"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text153"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.547706,-251.54568)">retData_comm_T1(1)</text>
+      <text
+         x="200"
+         y="631"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text155"
+         clip-path="url(#clipPath1)"
+         transform="translate(70.547706,-251.54568)">sec:hsmSec_comm</text>
+      <rect
+         x="150"
+         y="500"
+         width="15"
+         style="fill:#c7f369;stroke:none"
+         height="35"
+         id="rect157"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <polygon
+         style="fill:#c7f369;stroke:none"
+         points="157,540 150,535 165,535 "
+         id="polygon159"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="150"
+         x2="165"
+         y1="500"
+         style="fill:none"
+         y2="500"
+         id="line161"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="150"
+         x2="150"
+         y1="500"
+         style="fill:none"
+         y2="535"
+         id="line163"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="165"
+         x2="165"
+         y1="500"
+         style="fill:none"
+         y2="535"
+         id="line165"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="150"
+         x2="157"
+         y1="535"
+         style="fill:none"
+         y2="540"
+         id="line167"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="157"
+         x2="165"
+         y1="540"
+         style="fill:none"
+         y2="535"
+         id="line169"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="157"
+         x2="157"
+         y1="540"
+         style="fill:none"
+         y2="545"
+         id="line173"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="160"
+         y1="505"
+         style="fill:none"
+         y2="505"
+         id="line175"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="160"
+         y1="517"
+         style="fill:none"
+         y2="517"
+         id="line177"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="160"
+         y1="511"
+         style="fill:none"
+         y2="511"
+         id="line179"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="155"
+         y1="505"
+         style="fill:none"
+         y2="511"
+         id="line181"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="160"
+         x2="160"
+         y1="511"
+         style="fill:none"
+         y2="517"
+         id="line183"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="160"
+         y1="520"
+         style="fill:none"
+         y2="520"
+         id="line185"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="160"
+         y1="532"
+         style="fill:none"
+         y2="532"
+         id="line187"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="160"
+         y1="526"
+         style="fill:none"
+         y2="526"
+         id="line189"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <line
+         x1="155"
+         x2="155"
+         y1="520"
+         style="fill:none"
+         y2="532"
+         id="line191"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <text
+         x="172"
+         y="517"
+         style="stroke:none"
+         xml:space="preserve"
+         id="text193"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)">sec:hsmSec_comm</text>
+      <image
+         x="128"
+         y="517"
+         width="20"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAAZklEQVR42mNgGOyA EYn9H48cyQb+J9JSogz8T00fU9XAc/d/MTBRO1JYiLEVGRgpsmHIIYuxEGMrUAPO 1ACVg4sx4YtFdNchxzqaHCOygViTBpJ3GHEZiibHiGEQ0JD/eLw6CugEAGstHBuj 0FC+AAAAAElFTkSuQmCC"
+         height="16"
+         preserveAspectRatio="none"
+         id="image195"
+         clip-path="url(#clipPath1)"
+         transform="translate(78.803801,-208.00422)" />
+      <circle
+         style="stroke:none"
+         r="8"
+         cx="160"
+         cy="710"
+         id="circle197"
+         clip-path="url(#clipPath1)"
+         d="m 168,710 c 0,4.41828 -3.58172,8 -8,8 -4.41828,0 -8,-3.58172 -8,-8 0,-4.41828 3.58172,-8 8,-8 4.41828,0 8,3.58172 8,8 z"
+         sodipodi:cx="160"
+         sodipodi:cy="710"
+         sodipodi:rx="8"
+         sodipodi:ry="8"
+         transform="translate(77.574649,-313.44471)" />
+      <circle
+         style="fill:none"
+         r="10"
+         cx="160"
+         cy="710"
+         id="circle199"
+         clip-path="url(#clipPath1)"
+         d="m 170,710 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52285 4.47715,-10 10,-10 5.52285,0 10,4.47715 10,10 z"
+         sodipodi:cx="160"
+         sodipodi:cy="710"
+         sodipodi:rx="10"
+         sodipodi:ry="10"
+         transform="translate(77.574649,-313.44471)" />
+      <polygon
+         transform="translate(-0.56912825,-31.303148)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+         points="310,181 319,181 315,190 "
+         id="polygon25-8"
+         clip-path="url(#clipPath1-3)" />
+      <polygon
+         transform="translate(-0.56912825,-31.303148)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+         points="310,181 319,181 315,190 "
+         id="polygon27-1"
+         clip-path="url(#clipPath1-3)" />
+      <line
+         x1="407"
+         x2="407"
+         y1="65"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:0.62101328;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+         y2="70"
+         id="line55-3"
+         clip-path="url(#clipPath1-1)"
+         transform="matrix(1,0,0,2.5929742,-170.05598,102.12302)" />
+      <polygon
+         transform="translate(-78.236854,100.63005)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+         points="315,190 310,181 319,181 "
+         id="polygon25-8-8"
+         clip-path="url(#clipPath1-3-3)" />
+      <polygon
+         transform="translate(-78.236854,100.63005)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+         points="315,190 310,181 319,181 "
+         id="polygon27-1-4"
+         clip-path="url(#clipPath1-3-3)" />
+      <polygon
+         transform="translate(-78.608441,156.82268)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+         points="315,190 310,181 319,181 "
+         id="polygon25-8-8-0"
+         clip-path="url(#clipPath1-3-3-7)" />
+      <polygon
+         transform="translate(-78.608441,156.82268)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+         points="315,190 310,181 319,181 "
+         id="polygon27-1-4-7"
+         clip-path="url(#clipPath1-3-3-7)" />
+      <line
+         x1="157"
+         x2="157"
+         y1="540"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+         y2="545"
+         id="line173-2"
+         clip-path="url(#clipPath1-4)"
+         transform="translate(79.841716,-169.74297)" />
+      <polygon
+         transform="translate(-77.570524,195.08393)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+         points="315,190 310,181 319,181 "
+         id="polygon25-8-8-0-3"
+         clip-path="url(#clipPath1-3-3-7-5)" />
+      <polygon
+         transform="translate(-77.570524,195.08393)"
+         style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+         points="315,190 310,181 319,181 "
+         id="polygon27-1-4-7-3"
+         clip-path="url(#clipPath1-3-3-7-5)" />
+    </g>
+  </g>
+</svg>
diff --git a/doc/SysMLSec/fig/hsmarch.svg b/doc/SysMLSec/fig/hsmarch.svg
new file mode 100644
index 0000000000000000000000000000000000000000..add74c9f76c7ba15f8b8f1ff0ce4395cb5561994
--- /dev/null
+++ b/doc/SysMLSec/fig/hsmarch.svg
@@ -0,0 +1,2840 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Dialog"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   width="1261.0444"
+   height="411.83667"
+   sodipodi:docname="hsmarch.svg">
+  <metadata
+     id="metadata533">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="2048"
+     inkscape:window-height="1086"
+     id="namedview531"
+     showgrid="true"
+     inkscape:snap-global="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:zoom="0.63429569"
+     inkscape:cx="484.28315"
+     inkscape:cy="158.05948"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g5"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3510"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       originx="-21.594309px"
+       originy="-503.02371px" />
+  </sodipodi:namedview>
+  <!--Generated by the Batik Graphics2D SVG Generator-->
+  <defs
+     id="genericDefs">
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-2">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-7" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3780">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3782" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3784">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3786" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3788">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3790" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3792">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3794" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3796">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3798" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3800">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3802" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3804">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3806" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3808">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3810" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3812">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3814" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3816">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3818" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3820">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3822" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3824">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3826" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3828">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3830" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3832">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3834" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3836">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3838" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3840">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3842" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3844">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3846" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3848">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3850" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3852">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3854" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3856">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3858" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3860">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3862" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3864">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3866" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3868">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3870" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3872">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3874" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3876">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3878" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3880">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3882" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3884">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3886" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3888">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3890" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3892">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3894" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3896">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3898" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3900">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3902" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3904">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3906" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3908">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3910" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3912">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3914" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3916">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3918" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3920">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3922" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3924">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3926" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3928">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3930" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3932">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3934" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3936">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3938" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3940">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3942" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3944">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3946" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3948">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3950" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3952">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3954" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3956">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3958" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3960">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3962" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3964">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3966" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3968">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3970" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3972">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3974" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3976">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3978" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3980">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3982" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3984">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3986" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3988">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path3990" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-8">
+      <path
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+         id="path9-3"
+         inkscape:connector-curvature="0" />
+    </clipPath>
+  </defs>
+  <g
+     id="g5"
+     transform="translate(-27.506378,-137.50181)">
+    <defs
+       id="defs1">
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath1">
+        <path
+           d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z"
+           id="path9"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+    </defs>
+    <line
+       clip-path="url(#clipPath1-8)"
+       id="line25-2"
+       y2="371"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:0.97460783;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="344"
+       x2="298"
+       x1="298"
+       transform="matrix(1,0,0,1.0527863,743.02713,-27.773772)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line17"
+       y2="453"
+       style="fill:none;stroke-width:1.45667028;font-family:sans-serif"
+       y1="493"
+       x2="694"
+       x1="694"
+       transform="matrix(1,0,0,0.47127837,-28.912069,222.39044)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line19"
+       y2="381"
+       style="fill:none;font-family:sans-serif"
+       y1="344"
+       x2="569"
+       x1="423"
+       transform="translate(-23,-4.6378174)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line21"
+       y2="381"
+       style="fill:none;stroke-width:0.95481837;font-family:sans-serif"
+       y1="337"
+       x2="819"
+       x1="953"
+       transform="matrix(1.0235306,0,0,1.0716614,-45.424684,-28.787724)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line25"
+       y2="371"
+       style="fill:none;font-family:sans-serif"
+       y1="344"
+       x2="298"
+       x1="298"
+       transform="translate(-23,-4.6378174)" />
+    <line
+       transform="matrix(-0.00309774,0,0,0.37058583,213.72797,260.34555)"
+       clip-path="url(#clipPath1)"
+       id="line27"
+       y2="421"
+       style="fill:none;stroke-width:29.5143528;font-family:sans-serif"
+       y1="470"
+       x2="235"
+       x1="220" />
+    <line
+       transform="matrix(-0.00299522,0,0,0.37237817,361.90897,260.67485)"
+       clip-path="url(#clipPath1)"
+       id="line29"
+       y2="421"
+       style="fill:none;stroke-width:29.94286537;font-family:sans-serif"
+       y1="467"
+       x2="360"
+       x1="403" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect31"
+       height="201"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="144"
+       x="236"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect33"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="249"
+       y="144"
+       x="237"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect35"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="250"
+       y="344"
+       x="237"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect37"
+       height="200"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="144"
+       x="486"
+       transform="translate(-23.278698,-2.9656317)" />
+    <line
+       transform="matrix(0.89838631,0,0,0.94046875,1.3918744,5.5576014)"
+       clip-path="url(#clipPath1)"
+       id="line39"
+       y2="141"
+       style="fill:none;stroke-width:1.08791828;font-family:sans-serif"
+       y1="144"
+       x2="238"
+       x1="236" />
+    <line
+       transform="matrix(0.93225754,0,0,0.91378232,10.124493,9.5482483)"
+       clip-path="url(#clipPath1)"
+       id="line41"
+       y2="141"
+       style="fill:none;stroke-width:1.08345449;font-family:sans-serif"
+       y1="144"
+       x2="488"
+       x1="486" />
+    <line
+       transform="matrix(0.99769365,0,0,1,-21.868761,-2.9656317)"
+       clip-path="url(#clipPath1)"
+       id="line43"
+       y2="141"
+       style="fill:none;stroke-width:1.00115526;font-family:sans-serif"
+       y1="141"
+       x2="488"
+       x1="238" />
+    <line
+       transform="matrix(0.85194189,0,0,0.9187132,49.504926,25.388948)"
+       clip-path="url(#clipPath1)"
+       id="line45"
+       y2="341"
+       style="fill:none;stroke-width:1.13032937;font-family:sans-serif"
+       y1="344"
+       x2="488"
+       x1="486" />
+    <line
+       transform="translate(-22.57664,-2.9902653)"
+       clip-path="url(#clipPath1)"
+       id="line47"
+       y2="341"
+       style="fill:none;font-family:sans-serif"
+       y1="141"
+       x2="488"
+       x1="488" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect49"
+       height="197"
+       style="fill:#c6ebf9;stroke:none;font-family:sans-serif"
+       width="247"
+       y="146"
+       x="238"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect51"
+       height="199"
+       style="fill:#ffffff;stroke:none;font-family:sans-serif"
+       width="1"
+       y="145"
+       x="237"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect53"
+       height="1"
+       style="fill:#ffffff;stroke:none;font-family:sans-serif"
+       width="247"
+       y="145"
+       x="238"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect55"
+       height="1"
+       style="fill:#8aa4ae;stroke:none;font-family:sans-serif"
+       width="248"
+       y="343"
+       x="238"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect57"
+       height="198"
+       style="fill:#8aa4ae;stroke:none;font-family:sans-serif"
+       width="1"
+       y="145"
+       x="485"
+       transform="translate(-23.278698,-2.9656317)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text59"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="159"
+       x="320"
+       transform="translate(-23.278698,-2.9656317)">&lt;&lt;CPURR&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text61"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="174"
+       x="344"
+       transform="translate(-23.278698,-2.9656317)">CPU1</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image63"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAWklEQVR42mNgoCL4 D8X42HDAhM2Ec/d//SfEBgFGNFuJAYzIjP9kepGRbM1AL0CcAPKLkSIb0ZpGnT1Q zkZP22AFMMPQ2SAA5DPiTNv4AEwjNs2MSM7CxYYDAJ76RjSq+zXoAAAAAElFTkSu QmCC"
+       width="15"
+       y="148"
+       x="240"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       transform="matrix(1.005941,0,0,1.0221071,-26.00564,-8.5587273)"
+       clip-path="url(#clipPath1)"
+       id="rect67"
+       height="39"
+       style="fill:#c6e3f9;stroke:none;font-family:sans-serif"
+       width="170"
+       y="214"
+       x="289" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line69"
+       y2="243"
+       style="fill:none;font-family:sans-serif"
+       y1="218"
+       x2="434"
+       x1="434"
+       transform="translate(-23.278698,-2.9656317)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line71"
+       y2="218"
+       style="fill:none;font-family:sans-serif"
+       y1="218"
+       x2="449"
+       x1="434"
+       transform="translate(-23.278698,-2.9656317)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line73"
+       y2="223"
+       style="fill:none;font-family:sans-serif"
+       y1="218"
+       x2="454"
+       x1="449"
+       transform="translate(-23.278698,-2.9656317)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line75"
+       y2="243"
+       style="fill:none;font-family:sans-serif"
+       y1="223"
+       x2="454"
+       x1="454"
+       transform="translate(-23.278698,-2.9656317)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line77"
+       y2="243"
+       style="fill:none;font-family:sans-serif"
+       y1="243"
+       x2="434"
+       x1="454"
+       transform="translate(-23.278698,-2.9656317)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line79"
+       y2="223"
+       style="fill:none;font-family:sans-serif"
+       y1="218"
+       x2="449"
+       x1="449"
+       transform="translate(-23.278698,-2.9656317)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line81"
+       y2="223"
+       style="fill:none;font-family:sans-serif"
+       y1="223"
+       x2="454"
+       x1="449"
+       transform="translate(-23.278698,-2.9656317)" />
+    <text
+       transform="translate(-21.505077,3.3405754)"
+       clip-path="url(#clipPath1)"
+       id="text83"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="228"
+       x="293">NonSecureFV_enc::T1</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect85"
+       height="201"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="137"
+       x="891"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect87"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="249"
+       y="137"
+       x="892"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect89"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="250"
+       y="337"
+       x="892"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect91"
+       height="200"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="137"
+       x="1141"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       transform="matrix(0.93225754,0,0,0.8932543,37.199864,18.490483)"
+       clip-path="url(#clipPath1)"
+       id="line93"
+       y2="134"
+       style="fill:none;stroke-width:1.0958333;font-family:sans-serif"
+       y1="137"
+       x2="893"
+       x1="891" />
+    <line
+       transform="matrix(0.8829903,0,0,0.95073276,110.26319,10.94849)"
+       clip-path="url(#clipPath1)"
+       id="line95"
+       y2="134"
+       style="fill:none;stroke-width:1.0914222;font-family:sans-serif"
+       y1="137"
+       x2="1143"
+       x1="1141" />
+    <line
+       transform="matrix(0.99857691,0,0,1,-21.617582,4.0018086)"
+       clip-path="url(#clipPath1)"
+       id="line97"
+       y2="134"
+       style="fill:none;stroke-width:1.00071228;font-family:sans-serif"
+       y1="134"
+       x2="1143"
+       x1="893" />
+    <line
+       transform="matrix(0.77829741,0,0,0.81935345,230.00106,65.18762)"
+       clip-path="url(#clipPath1)"
+       id="line99"
+       y2="334"
+       style="fill:none;stroke-width:1.25225163;font-family:sans-serif"
+       y1="337"
+       x2="1143"
+       x1="1141" />
+    <line
+       transform="translate(-23.244885,4.1988776)"
+       clip-path="url(#clipPath1)"
+       id="line101"
+       y2="334"
+       style="fill:none;font-family:sans-serif"
+       y1="134"
+       x2="1143"
+       x1="1143" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect103"
+       height="197"
+       style="fill:#c6ebf9;stroke:none;font-family:sans-serif"
+       width="247"
+       y="139"
+       x="893"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect105"
+       height="199"
+       style="fill:#ffffff;stroke:none;font-family:sans-serif"
+       width="1"
+       y="138"
+       x="892"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect107"
+       height="1"
+       style="fill:#ffffff;stroke:none;font-family:sans-serif"
+       width="247"
+       y="138"
+       x="893"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect109"
+       height="1"
+       style="fill:#8aa4ae;stroke:none;font-family:sans-serif"
+       width="248"
+       y="336"
+       x="893"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect111"
+       height="198"
+       style="fill:#8aa4ae;stroke:none;font-family:sans-serif"
+       width="1"
+       y="138"
+       x="1140"
+       transform="translate(-23.836092,4.0018086)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text113"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="152"
+       x="975"
+       transform="translate(-23.836092,4.0018086)">&lt;&lt;CPURR&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text115"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="167"
+       x="999"
+       transform="translate(-23.836092,4.0018086)">CPU2</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image117"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAWklEQVR42mNgoCL4 D8X42HDAhM2Ec/d//SfEBgFGNFuJAYzIjP9kepGRbM1AL0CcAPKLkSIb0ZpGnT1Q zkZP22AFMMPQ2SAA5DPiTNv4AEwjNs2MSM7CxYYDAJ76RjSq+zXoAAAAAElFTkSu QmCC"
+       width="15"
+       y="141"
+       x="895"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect119"
+       height="40"
+       style="fill:none;font-family:sans-serif"
+       width="171"
+       y="219"
+       x="933"
+       transform="translate(-23.836092,4.0018086)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect121"
+       height="39"
+       style="fill:#c6e3f9;stroke:none;font-family:sans-serif"
+       width="170"
+       y="220"
+       x="934"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line123"
+       y2="249"
+       style="fill:none;font-family:sans-serif"
+       y1="224"
+       x2="1079"
+       x1="1079"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line125"
+       y2="224"
+       style="fill:none;font-family:sans-serif"
+       y1="224"
+       x2="1094"
+       x1="1079"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line127"
+       y2="229"
+       style="fill:none;font-family:sans-serif"
+       y1="224"
+       x2="1099"
+       x1="1094"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line129"
+       y2="249"
+       style="fill:none;font-family:sans-serif"
+       y1="229"
+       x2="1099"
+       x1="1099"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line131"
+       y2="249"
+       style="fill:none;font-family:sans-serif"
+       y1="249"
+       x2="1079"
+       x1="1099"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line133"
+       y2="229"
+       style="fill:none;font-family:sans-serif"
+       y1="224"
+       x2="1094"
+       x1="1094"
+       transform="translate(-23.836092,4.0018086)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line135"
+       y2="229"
+       style="fill:none;font-family:sans-serif"
+       y1="229"
+       x2="1099"
+       x1="1094"
+       transform="translate(-23.836092,4.0018086)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text137"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="234"
+       x="938"
+       transform="translate(-23.836092,4.0018086)">NonSecureFV_enc::T2</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect139"
+       height="97"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="357"
+       x="569"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect141"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="249"
+       y="357"
+       x="570"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect143"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="250"
+       y="453"
+       x="570"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect145"
+       height="96"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="357"
+       x="819"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       transform="matrix(0.94457436,0,0,0.90146552,3.3087079,18.216026)"
+       clip-path="url(#clipPath1)"
+       id="line147"
+       y2="354"
+       style="fill:none;stroke-width:1.08369577;font-family:sans-serif"
+       y1="357"
+       x2="571"
+       x1="569" />
+    <line
+       transform="matrix(0.87806979,0,0,0.9651628,71.541001,-4.1927706)"
+       clip-path="url(#clipPath1)"
+       id="line149"
+       y2="354"
+       style="fill:none;stroke-width:1.08626354;font-family:sans-serif"
+       y1="357"
+       x2="821"
+       x1="819" />
+    <line
+       transform="matrix(0.99853193,0,0,1,-27.113814,-16.856094)"
+       clip-path="url(#clipPath1)"
+       id="line151"
+       y2="354"
+       style="fill:none;stroke-width:1.00073481;font-family:sans-serif"
+       y1="354"
+       x2="821"
+       x1="571" />
+    <line
+       transform="matrix(0.85194189,0,0,0.81420159,93.201031,67.571865)"
+       clip-path="url(#clipPath1)"
+       id="line153"
+       y2="450"
+       style="fill:none;stroke-width:1.20068491;font-family:sans-serif"
+       y1="453"
+       x2="821"
+       x1="819" />
+    <line
+       transform="translate(-28.319837,-16.629652)"
+       clip-path="url(#clipPath1)"
+       id="line155"
+       y2="450"
+       style="fill:none;font-family:sans-serif"
+       y1="354"
+       x2="821"
+       x1="821" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect157"
+       height="93"
+       style="fill:#d7bc80;stroke:none;font-family:sans-serif"
+       width="247"
+       y="359"
+       x="571"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect159"
+       height="95"
+       style="fill:#ffffb6;stroke:none;font-family:sans-serif"
+       width="1"
+       y="358"
+       x="570"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect161"
+       height="1"
+       style="fill:#ffffb6;stroke:none;font-family:sans-serif"
+       width="247"
+       y="358"
+       x="571"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect163"
+       height="1"
+       style="fill:#968359;stroke:none;font-family:sans-serif"
+       width="248"
+       y="452"
+       x="571"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect165"
+       height="94"
+       style="fill:#968359;stroke:none;font-family:sans-serif"
+       width="1"
+       y="358"
+       x="818"
+       transform="translate(-28.912069,-16.856094)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text167"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="372"
+       x="651"
+       transform="translate(-28.912069,-16.856094)">&lt;&lt;BUS-RR&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text169"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="387"
+       x="668"
+       transform="translate(-28.912069,-16.856094)">MainBus</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image171"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAR0lEQVR42mNgGNng P6lqmJAFz93/RZIBjETaiA0wkq0Z6Eq4s8mzGs3PeBUbKbIx4FL3n4gAA6uBqWPC 4gqCLgW6gHGkpmcArSwgRFOuG2IAAAAASUVORK5CYII="
+       width="15"
+       y="361"
+       x="573"
+       transform="translate(-28.912069,-16.856094)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect173"
+       height="40"
+       style="fill:none;font-family:sans-serif"
+       width="193"
+       y="398"
+       x="609"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line175"
+       y2="428"
+       style="fill:none;font-family:sans-serif"
+       y1="403"
+       x2="777"
+       x1="777"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line177"
+       y2="403"
+       style="fill:none;font-family:sans-serif"
+       y1="403"
+       x2="792"
+       x1="777"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line179"
+       y2="408"
+       style="fill:none;font-family:sans-serif"
+       y1="403"
+       x2="797"
+       x1="792"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line181"
+       y2="428"
+       style="fill:none;font-family:sans-serif"
+       y1="408"
+       x2="797"
+       x1="797"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line183"
+       y2="428"
+       style="fill:none;font-family:sans-serif"
+       y1="428"
+       x2="777"
+       x1="797"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line185"
+       y2="408"
+       style="fill:none;font-family:sans-serif"
+       y1="403"
+       x2="792"
+       x1="792"
+       transform="translate(-28.912069,-16.856094)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line187"
+       y2="408"
+       style="fill:none;font-family:sans-serif"
+       y1="408"
+       x2="797"
+       x1="792"
+       transform="translate(-28.912069,-16.856094)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text189"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="413"
+       x="614"
+       transform="translate(-28.912069,-16.856094)">NonSecureFV_enc::comm</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text191"
+       xml:space="preserve"
+       style="font-style:italic;stroke:none;font-family:sans-serif"
+       y="433"
+       x="614"
+       transform="translate(-28.912069,-16.856094)">channel</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect193"
+       height="140"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="493"
+       x="592"
+       transform="matrix(1,0,0,0.64864194,-27.729655,138.62722)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect195"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="204"
+       y="493"
+       x="593"
+       transform="translate(-27.729655,-34.592301)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line201"
+       y2="490"
+       style="fill:none;stroke-width:1.07604694;font-family:sans-serif"
+       y1="493"
+       x2="594"
+       x1="592"
+       transform="matrix(0.95209885,0,0,0.9071008,1.3071518,11.093786)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line203"
+       y2="490"
+       style="fill:none;font-family:sans-serif"
+       y1="493"
+       x2="799"
+       x1="797"
+       transform="translate(-27.089181,-34.370598)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line205"
+       y2="490"
+       style="fill:none;stroke-width:1.00027144;font-family:sans-serif"
+       y1="490"
+       x2="799"
+       x1="594"
+       transform="matrix(0.99945733,0,0,1,-26.458259,-34.592301)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line207"
+       y2="629"
+       style="fill:none;font-family:sans-serif"
+       y1="632"
+       x2="799"
+       x1="797"
+       transform="translate(-27.022044,-83.508321)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line209"
+       y2="629"
+       style="fill:none;stroke-width:1.24571478;font-family:sans-serif"
+       y1="490"
+       x2="799"
+       x1="799"
+       transform="matrix(1,0,0,0.64441072,-26.867478,139.63666)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect211"
+       height="136"
+       style="fill:#acead3;stroke:none;font-family:sans-serif"
+       width="202"
+       y="495"
+       x="594"
+       transform="matrix(1.0005347,0,0,0.64771399,-27.91143,139.27847)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect213"
+       height="138"
+       style="fill:#f5ffff;stroke:none;font-family:sans-serif"
+       width="1"
+       y="494"
+       x="593"
+       transform="matrix(1,0,0,0.62854625,-27.729655,148.90585)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect215"
+       height="1"
+       style="fill:#f5ffff;stroke:none;font-family:sans-serif"
+       width="202"
+       y="494"
+       x="594"
+       transform="translate(-27.729655,-34.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect217"
+       height="1"
+       style="fill:#78a393;stroke:none;font-family:sans-serif"
+       width="203"
+       y="631"
+       x="594"
+       transform="matrix(0.99948516,0,0,1,-27.304901,-83.315116)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect219"
+       height="137"
+       style="fill:#78a393;stroke:none;font-family:sans-serif"
+       width="1"
+       y="494"
+       x="796"
+       transform="matrix(1,0,0,0.647872,-27.729655,139.35893)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text221"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="508"
+       x="648"
+       transform="translate(-27.729655,-34.592301)">&lt;&lt;MEMORY&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text223"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="523"
+       x="649"
+       transform="translate(-27.729655,-34.592301)">MainMemory</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image225"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAN0lEQVR42mNgGJKA EUr/J0cv2ZrP3f/FwESJs0c1k6mZETkKiGWTbbORIhsjsmZGJNOJYQ8gAACyshpS N3IeWgAAAABJRU5ErkJggg=="
+       width="15"
+       y="497"
+       x="596"
+       transform="translate(-27.729655,-34.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect227"
+       height="40"
+       style="fill:none;font-family:sans-serif"
+       width="193"
+       y="548"
+       x="600"
+       transform="translate(-28.565748,-53.543738)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line229"
+       y2="578"
+       style="fill:none;font-family:sans-serif"
+       y1="553"
+       x2="768"
+       x1="768"
+       transform="translate(-28.565748,-53.543738)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line231"
+       y2="553"
+       style="fill:none;font-family:sans-serif"
+       y1="553"
+       x2="783"
+       x1="768"
+       transform="translate(-28.565748,-53.543738)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line233"
+       y2="558"
+       style="fill:none;font-family:sans-serif"
+       y1="553"
+       x2="788"
+       x1="783"
+       transform="translate(-28.565748,-53.543738)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line235"
+       y2="578"
+       style="fill:none;font-family:sans-serif"
+       y1="558"
+       x2="788"
+       x1="788"
+       transform="translate(-28.565748,-53.543738)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line237"
+       y2="578"
+       style="fill:none;font-family:sans-serif"
+       y1="578"
+       x2="768"
+       x1="788"
+       transform="translate(-28.565748,-53.543738)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line239"
+       y2="558"
+       style="fill:none;font-family:sans-serif"
+       y1="553"
+       x2="783"
+       x1="783"
+       transform="translate(-28.565748,-53.543738)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line241"
+       y2="558"
+       style="fill:none;font-family:sans-serif"
+       y1="558"
+       x2="788"
+       x1="783"
+       transform="translate(-28.565748,-53.543738)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text243"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="563"
+       x="605"
+       transform="translate(-28.565748,-53.543738)">NonSecureFV_enc::comm</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text245"
+       xml:space="preserve"
+       style="font-style:italic;stroke:none;font-family:sans-serif"
+       y="583"
+       x="605"
+       transform="translate(-28.565748,-53.543738)">channel</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect351"
+       height="51"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="381"
+       x="971"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect353"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="249"
+       y="381"
+       x="972"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect355"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="250"
+       y="431"
+       x="972"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect357"
+       height="50"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="381"
+       x="1221"
+       transform="translate(-53.099342,-15.228327)" />
+    <line
+       transform="matrix(0.87806979,0,0,0.9187132,65.974218,15.637435)"
+       clip-path="url(#clipPath1)"
+       id="line359"
+       y2="378"
+       style="fill:none;stroke-width:1.11338532;font-family:sans-serif"
+       y1="381"
+       x2="973"
+       x1="971" />
+    <line
+       transform="matrix(0.86936049,0,0,0.9593566,107.02115,0.44841473)"
+       clip-path="url(#clipPath1)"
+       id="line361"
+       y2="378"
+       style="fill:none;stroke-width:1.09498966;font-family:sans-serif"
+       y1="381"
+       x2="1223"
+       x1="1221" />
+    <line
+       transform="matrix(0.99923661,0,0,1,-51.55568,-15.228327)"
+       clip-path="url(#clipPath1)"
+       id="line363"
+       y2="378"
+       style="fill:none;stroke-width:1.00038183;font-family:sans-serif"
+       y1="378"
+       x2="1223"
+       x1="973" />
+    <line
+       transform="matrix(0.83887794,0,0,0.83742639,144.46679,55.154434)"
+       clip-path="url(#clipPath1)"
+       id="line365"
+       y2="428"
+       style="fill:none;stroke-width:1.19310117;font-family:sans-serif"
+       y1="431"
+       x2="1223"
+       x1="1221" />
+    <line
+       transform="translate(-52.489691,-15.036722)"
+       clip-path="url(#clipPath1)"
+       id="line367"
+       y2="428"
+       style="fill:none;font-family:sans-serif"
+       y1="378"
+       x2="1223"
+       x1="1223" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect369"
+       height="47"
+       style="fill:#d7bc80;stroke:none;font-family:sans-serif"
+       width="247"
+       y="383"
+       x="973"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect371"
+       height="49"
+       style="fill:#ffffb6;stroke:none;font-family:sans-serif"
+       width="1"
+       y="382"
+       x="972"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect373"
+       height="1"
+       style="fill:#ffffb6;stroke:none;font-family:sans-serif"
+       width="247"
+       y="382"
+       x="973"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect375"
+       height="1"
+       style="fill:#968359;stroke:none;font-family:sans-serif"
+       width="248"
+       y="430"
+       x="973"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect377"
+       height="48"
+       style="fill:#968359;stroke:none;font-family:sans-serif"
+       width="1"
+       y="382"
+       x="1220"
+       transform="translate(-53.099342,-15.228327)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text379"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="396"
+       x="1053"
+       transform="translate(-53.099342,-15.228327)">&lt;&lt;BUS-RR&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text381"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="411"
+       x="1051"
+       transform="translate(-53.099342,-15.228327)">HSMBus_CPU2</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image383"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAR0lEQVR42mNgGNng P6lqmJAFz93/RZIBjETaiA0wkq0Z6Eq4s8mzGs3PeBUbKbIx4FL3n4gAA6uBqWPC 4gqCLgW6gHGkpmcArSwgRFOuG2IAAAAASUVORK5CYII="
+       width="15"
+       y="385"
+       x="975"
+       transform="translate(-53.099342,-15.228327)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon385"
+       points="975,416 975,399 978,403 981,403 984,399 987,403 990,403 993,399 993,416 984,424 "
+       style="fill:#00ff00;stroke:none;font-family:sans-serif"
+       transform="translate(-53.099342,-15.228327)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon387"
+       points="975,416 975,399 978,403 981,403 984,399 987,403 990,403 993,399 993,416 984,424 "
+       style="fill:none;font-family:sans-serif"
+       transform="translate(-53.099342,-15.228327)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect389"
+       height="114"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="467"
+       x="353"
+       transform="matrix(1,0,0,0.98141674,-65.763967,-20.913919)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect391"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="199"
+       y="467"
+       x="354"
+       transform="translate(-65.763967,-29.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect393"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="200"
+       y="580"
+       x="354"
+       transform="translate(-66.256639,-31.661525)" />
+    <line
+       transform="matrix(0.86451508,0,0,0.90967672,-17.248049,12.465502)"
+       clip-path="url(#clipPath1)"
+       id="line397"
+       y2="464"
+       style="fill:none;stroke-width:1.12763917;font-family:sans-serif"
+       y1="467"
+       x2="355"
+       x1="353" />
+    <line
+       transform="matrix(0.84911907,0,0,0.93020474,18.265421,3.141435)"
+       clip-path="url(#clipPath1)"
+       id="line399"
+       y2="464"
+       style="fill:none;stroke-width:1.12519145;font-family:sans-serif"
+       y1="467"
+       x2="555"
+       x1="553" />
+    <line
+       transform="matrix(0.99941781,0,0,1,-64.8432,-29.592301)"
+       clip-path="url(#clipPath1)"
+       id="line401"
+       y2="464"
+       style="fill:none;stroke-width:1.00029123;font-family:sans-serif"
+       y1="464"
+       x2="555"
+       x1="355" />
+    <line
+       transform="matrix(0.7782974,0,0,0.84603987,57.630068,57.933526)"
+       clip-path="url(#clipPath1)"
+       id="line403"
+       y2="577"
+       style="fill:none;stroke-width:1.23234355;font-family:sans-serif"
+       y1="580"
+       x2="555"
+       x1="553" />
+    <line
+       transform="matrix(1,0,0,0.98181743,-65.171735,-21.025329)"
+       clip-path="url(#clipPath1)"
+       id="line405"
+       y2="577"
+       style="fill:none;stroke-width:1.00921714;font-family:sans-serif"
+       y1="464"
+       x2="555"
+       x1="555" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect407"
+       height="110"
+       style="fill:#acead3;stroke:none;font-family:sans-serif"
+       width="197"
+       y="469"
+       x="355"
+       transform="matrix(1,0,0,0.98768319,-65.763967,-23.828034)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect409"
+       height="112"
+       style="fill:#f5ffff;stroke:none;font-family:sans-serif"
+       width="1"
+       y="468"
+       x="354"
+       transform="matrix(1,0,0,0.98141481,-65.72913,-20.889119)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect411"
+       height="1"
+       style="fill:#f5ffff;stroke:none;font-family:sans-serif"
+       width="197"
+       y="468"
+       x="355"
+       transform="translate(-65.763967,-29.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect413"
+       height="1"
+       style="fill:#78a393;stroke:none;font-family:sans-serif"
+       width="198"
+       y="579"
+       x="355"
+       transform="matrix(1,0,0,0.98768319,-65.72913,-24.524778)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect415"
+       height="111"
+       style="fill:#78a393;stroke:none;font-family:sans-serif"
+       width="1"
+       y="468"
+       x="552"
+       transform="matrix(1,0,0,0.9898263,-65.746548,-24.788929)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text417"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="482"
+       x="407"
+       transform="translate(-65.763967,-29.592301)">&lt;&lt;MEMORY&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text419"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="497"
+       x="388"
+       transform="translate(-65.763967,-29.592301)">HSMMemory_CPU1</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image421"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAN0lEQVR42mNgGJKA EUr/J0cv2ZrP3f/FwESJs0c1k6mZETkKiGWTbbORIhsjsmZGJNOJYQ8gAACyshpS N3IeWgAAAABJRU5ErkJggg=="
+       width="15"
+       y="471"
+       x="357"
+       transform="translate(-65.763967,-29.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect423"
+       height="40"
+       style="fill:none;font-family:sans-serif"
+       width="144"
+       y="515"
+       x="377"
+       transform="translate(-65.763967,-29.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect425"
+       height="39"
+       style="fill:#ace2d3;stroke:none;font-family:sans-serif"
+       width="143"
+       y="516"
+       x="378"
+       transform="translate(-65.763967,-29.592301)" />
+    <circle
+       sodipodi:ry="6.5"
+       sodipodi:rx="6.5"
+       sodipodi:cy="526.5"
+       sodipodi:cx="507.5"
+       d="m 514,526.5 c 0,3.58985 -2.91015,6.5 -6.5,6.5 -3.58985,0 -6.5,-2.91015 -6.5,-6.5 0,-3.58985 2.91015,-6.5 6.5,-6.5 3.58985,0 6.5,2.91015 6.5,6.5 z"
+       clip-path="url(#clipPath1)"
+       id="circle427"
+       cy="526.5"
+       cx="507.5"
+       r="6.5"
+       style="stroke:none;font-family:sans-serif"
+       transform="translate(-65.763967,-29.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect429"
+       height="25"
+       style="stroke:none;font-family:sans-serif"
+       width="3"
+       y="520"
+       x="506"
+       transform="translate(-65.763967,-29.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect431"
+       height="3"
+       style="stroke:none;font-family:sans-serif"
+       width="8"
+       y="545"
+       x="506"
+       transform="translate(-65.763967,-29.592301)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect433"
+       height="3"
+       style="stroke:none;font-family:sans-serif"
+       width="8"
+       y="541"
+       x="506"
+       transform="translate(-65.763967,-29.592301)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text435"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="530"
+       x="382"
+       transform="translate(-65.763967,-29.592301)">autoEncrypt_comm</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text437"
+       xml:space="preserve"
+       style="font-style:italic;stroke:none;font-family:sans-serif"
+       y="550"
+       x="382"
+       transform="translate(-65.763967,-29.592301)">key</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect439"
+       height="112"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="470"
+       x="98"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect441"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="244"
+       y="470"
+       x="99"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect443"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="245"
+       y="581"
+       x="99"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect445"
+       height="111"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="470"
+       x="343"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       transform="matrix(0.86936049,0,0,0.9245194,-57.011625,2.6512265)"
+       clip-path="url(#clipPath1)"
+       id="line447"
+       y2="467"
+       style="fill:none;stroke-width:1.11542928;font-family:sans-serif"
+       y1="470"
+       x2="100"
+       x1="98" />
+    <line
+       transform="matrix(0.82581399,0,0,0.9651628,-10.225263,-16.172474)"
+       clip-path="url(#clipPath1)"
+       id="line449"
+       y2="467"
+       style="fill:none;stroke-width:1.12010467;font-family:sans-serif"
+       y1="470"
+       x2="345"
+       x1="343" />
+    <line
+       transform="matrix(0.99865463,0,0,1,-69.523662,-32.720146)"
+       clip-path="url(#clipPath1)"
+       id="line451"
+       y2="467"
+       style="fill:none;stroke-width:1.00067341;font-family:sans-serif"
+       y1="467"
+       x2="345"
+       x1="100" />
+    <line
+       transform="matrix(0.78041064,0,0,0.84158206,5.6138053,59.640917)"
+       clip-path="url(#clipPath1)"
+       id="line453"
+       y2="578"
+       style="fill:none;stroke-width:1.23392904;font-family:sans-serif"
+       y1="581"
+       x2="345"
+       x1="343" />
+    <line
+       transform="translate(-69.971064,-32.54596)"
+       clip-path="url(#clipPath1)"
+       id="line455"
+       y2="578"
+       style="fill:none;font-family:sans-serif"
+       y1="467"
+       x2="345"
+       x1="345" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect457"
+       height="108"
+       style="fill:#90c9d3;stroke:none;font-family:sans-serif"
+       width="242"
+       y="472"
+       x="100"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect459"
+       height="110"
+       style="fill:#cdffff;stroke:none;font-family:sans-serif"
+       width="1"
+       y="471"
+       x="99"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect461"
+       height="1"
+       style="fill:#cdffff;stroke:none;font-family:sans-serif"
+       width="242"
+       y="471"
+       x="100"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect463"
+       height="1"
+       style="fill:#648c93;stroke:none;font-family:sans-serif"
+       width="243"
+       y="580"
+       x="100"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect465"
+       height="109"
+       style="fill:#648c93;stroke:none;font-family:sans-serif"
+       width="1"
+       y="471"
+       x="342"
+       transform="translate(-70.493622,-32.720146)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text467"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="485"
+       x="186"
+       transform="translate(-70.493622,-32.720146)">&lt;&lt;HWA&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text469"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="500"
+       x="187"
+       transform="translate(-70.493622,-32.720146)">HSM_CPU1</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image471"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAARElEQVR42mNgoBL4 D8XEshmY0E04d//Xf2LZjEgmkgoYydYMtB3T2aSAUc1kamZEjgJi2WTbbKTIxois mRHJdGLYAwgA0yQw5H1+PIsAAAAASUVORK5CYII="
+       width="15"
+       y="474"
+       x="102"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect473"
+       height="40"
+       style="fill:none;font-family:sans-serif"
+       width="222"
+       y="523"
+       x="105"
+       transform="translate(-70.493622,-32.720146)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect475"
+       height="39"
+       style="fill:#c6e3f9;stroke:none;font-family:sans-serif"
+       width="221"
+       y="524"
+       x="106"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line477"
+       y2="553"
+       style="fill:none;font-family:sans-serif"
+       y1="528"
+       x2="302"
+       x1="302"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line479"
+       y2="528"
+       style="fill:none;font-family:sans-serif"
+       y1="528"
+       x2="317"
+       x1="302"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line481"
+       y2="533"
+       style="fill:none;font-family:sans-serif"
+       y1="528"
+       x2="322"
+       x1="317"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line483"
+       y2="553"
+       style="fill:none;font-family:sans-serif"
+       y1="533"
+       x2="322"
+       x1="322"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line485"
+       y2="553"
+       style="fill:none;font-family:sans-serif"
+       y1="553"
+       x2="302"
+       x1="322"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line487"
+       y2="533"
+       style="fill:none;font-family:sans-serif"
+       y1="528"
+       x2="317"
+       x1="317"
+       transform="translate(-70.493622,-32.720146)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line489"
+       y2="533"
+       style="fill:none;font-family:sans-serif"
+       y1="533"
+       x2="322"
+       x1="317"
+       transform="translate(-70.493622,-32.720146)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text491"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="538"
+       x="110"
+       transform="translate(-70.493622,-32.720146)">NonSecureFV_enc::HSM_CPU1</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect493"
+       height="51"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="1"
+       y="371"
+       x="173"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect495"
+       height="1"
+       style="fill:#030303;stroke:none;font-family:sans-serif"
+       width="249"
+       y="371"
+       x="174"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect497"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="250"
+       y="421"
+       x="174"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect499"
+       height="50"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="371"
+       x="423"
+       transform="translate(-23,-4.6378174)" />
+    <line
+       transform="matrix(1.0261279,0,0,0.9303256,-26.875639,21.176549)"
+       clip-path="url(#clipPath1)"
+       id="line501"
+       y2="368"
+       style="fill:none;stroke-width:1.02348566;font-family:sans-serif"
+       y1="371"
+       x2="175"
+       x1="173" />
+    <line
+       transform="translate(-22.512279,-4.4287942)"
+       clip-path="url(#clipPath1)"
+       id="line503"
+       y2="368"
+       style="fill:none;font-family:sans-serif"
+       y1="371"
+       x2="425"
+       x1="423" />
+    <line
+       transform="matrix(0.9956974,0,0,1,-21.169243,-4.6378174)"
+       clip-path="url(#clipPath1)"
+       id="line505"
+       y2="368"
+       style="fill:none;stroke-width:1.00215828;font-family:sans-serif"
+       y1="368"
+       x2="425"
+       x1="175" />
+    <line
+       transform="matrix(0.88299029,0,0,0.81730064,27.435709,72.557311)"
+       clip-path="url(#clipPath1)"
+       id="line507"
+       y2="418"
+       style="fill:none;stroke-width:1.17714822;font-family:sans-serif"
+       y1="421"
+       x2="425"
+       x1="423" />
+    <line
+       transform="translate(-22.059396,-4.3591198)"
+       clip-path="url(#clipPath1)"
+       id="line509"
+       y2="418"
+       style="fill:none;font-family:sans-serif"
+       y1="368"
+       x2="425"
+       x1="425" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect511"
+       height="47"
+       style="fill:#d7bc80;stroke:none;font-family:sans-serif"
+       width="247"
+       y="373"
+       x="175"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect513"
+       height="49"
+       style="fill:#ffffb6;stroke:none;font-family:sans-serif"
+       width="1"
+       y="372"
+       x="174"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect515"
+       height="1"
+       style="fill:#ffffb6;stroke:none;font-family:sans-serif"
+       width="247"
+       y="372"
+       x="175"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect517"
+       height="1"
+       style="fill:#968359;stroke:none;font-family:sans-serif"
+       width="248"
+       y="420"
+       x="175"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect519"
+       height="48"
+       style="fill:#968359;stroke:none;font-family:sans-serif"
+       width="1"
+       y="372"
+       x="422"
+       transform="translate(-23,-4.6378174)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text521"
+       xml:space="preserve"
+       style="font-weight:bold;stroke:none;font-family:sans-serif"
+       y="386"
+       x="255"
+       transform="translate(-23,-4.6378174)">&lt;&lt;BUS-RR&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text523"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="401"
+       x="253"
+       transform="translate(-23,-4.6378174)">HSMBus_CPU1</text>
+    <image
+       style="font-family:sans-serif"
+       clip-path="url(#clipPath1)"
+       id="image525"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAR0lEQVR42mNgGNng P6lqmJAFz93/RZIBjETaiA0wkq0Z6Eq4s8mzGs3PeBUbKbIx4FL3n4gAA6uBqWPC 4gqCLgW6gHGkpmcArSwgRFOuG2IAAAAASUVORK5CYII="
+       width="15"
+       y="375"
+       x="177"
+       transform="translate(-23,-4.6378174)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon527"
+       points="186,414 177,406 177,389 180,393 183,393 186,389 189,393 192,393 195,389 195,406 "
+       style="fill:#00ff00;stroke:none;font-family:sans-serif"
+       transform="translate(-23,-4.6378174)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon529"
+       points="186,414 177,406 177,389 180,393 183,393 186,389 189,393 192,393 195,389 195,406 "
+       style="fill:none;font-family:sans-serif"
+       transform="translate(-23,-4.6378174)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect65"
+       height="40"
+       style="fill:none;font-family:sans-serif"
+       width="171"
+       y="213"
+       x="288"
+       transform="translate(-23.278698,-2.9656317)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect395"
+       height="113"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="467"
+       x="553"
+       transform="matrix(1,0,0,0.99044289,-65.763967,-25.129131)" />
+    <line
+       transform="matrix(-0.00309774,0,0,0.34378446,968.19577,271.97457)"
+       clip-path="url(#clipPath1-2)"
+       id="line27-2"
+       y2="421"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:30.64323044;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="470"
+       x2="235"
+       x1="220" />
+    <line
+       transform="matrix(-0.00299522,0,0,0.35738379,1135.591,266.15073)"
+       clip-path="url(#clipPath1-2)"
+       id="line29-5"
+       y2="421"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:30.56455231;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="467"
+       x2="360"
+       x1="403" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect389-1"
+       height="114"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#030303;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="467"
+       x="353"
+       transform="matrix(1,0,0,0.98141674,732.45315,-21.750679)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect391-0"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#030303;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="199"
+       y="467"
+       x="354"
+       transform="translate(732.45315,-30.429069)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect393-6"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="200"
+       y="580"
+       x="354"
+       transform="translate(731.96047,-32.498289)" />
+    <line
+       transform="matrix(0.86451508,0,0,0.90967672,780.96906,11.628741)"
+       clip-path="url(#clipPath1-2)"
+       id="line397-2"
+       y2="464"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.12763917;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="467"
+       x2="355"
+       x1="353" />
+    <line
+       transform="matrix(0.84911907,0,0,0.93020474,816.48253,2.3046707)"
+       clip-path="url(#clipPath1-2)"
+       id="line399-1"
+       y2="464"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.12519145;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="467"
+       x2="555"
+       x1="553" />
+    <line
+       transform="matrix(0.99941781,0,0,1,733.37391,-30.429069)"
+       clip-path="url(#clipPath1-2)"
+       id="line401-8"
+       y2="464"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.00029123;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="464"
+       x2="555"
+       x1="355" />
+    <line
+       transform="matrix(0.7782974,0,0,0.84603987,855.84717,57.096759)"
+       clip-path="url(#clipPath1-2)"
+       id="line403-6"
+       y2="577"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.23234355;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="580"
+       x2="555"
+       x1="553" />
+    <line
+       transform="matrix(1,0,0,0.98181743,733.04538,-21.862089)"
+       clip-path="url(#clipPath1-2)"
+       id="line405-6"
+       y2="577"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.00921714;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="464"
+       x2="555"
+       x1="555" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect407-9"
+       height="110"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#acead3;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="197"
+       y="469"
+       x="355"
+       transform="matrix(1,0,0,0.98768319,732.45315,-24.664799)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect409-4"
+       height="112"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#f5ffff;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="468"
+       x="354"
+       transform="matrix(1,0,0,0.98141481,732.48798,-21.725879)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect411-3"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#f5ffff;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="197"
+       y="468"
+       x="355"
+       transform="translate(732.45315,-30.429069)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect413-3"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#78a393;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="198"
+       y="579"
+       x="355"
+       transform="matrix(1,0,0,0.98768319,732.48798,-25.361539)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect415-6"
+       height="111"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#78a393;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="468"
+       x="552"
+       transform="matrix(1,0,0,0.9898263,732.47056,-25.625689)" />
+    <text
+       clip-path="url(#clipPath1-2)"
+       id="text417-0"
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="482"
+       x="407"
+       transform="translate(732.45315,-30.429069)">&lt;&lt;MEMORY&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1-2)"
+       id="text419-6"
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="497"
+       x="388"
+       transform="translate(732.45315,-30.429069)">HSMMemory_CPU2</text>
+    <image
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       clip-path="url(#clipPath1-2)"
+       id="image421-5"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAN0lEQVR42mNgGJKA EUr/J0cv2ZrP3f/FwESJs0c1k6mZETkKiGWTbbORIhsjsmZGJNOJYQ8gAACyshpS N3IeWgAAAABJRU5ErkJggg=="
+       width="15"
+       y="471"
+       x="357"
+       transform="translate(732.45315,-30.429069)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect423-9"
+       height="40"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       width="144"
+       y="515"
+       x="377"
+       transform="translate(732.45315,-30.429069)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect425-9"
+       height="39"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#ace2d3;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="143"
+       y="516"
+       x="378"
+       transform="translate(732.45315,-30.429069)" />
+    <circle
+       sodipodi:ry="6.5"
+       sodipodi:rx="6.5"
+       sodipodi:cy="526.5"
+       sodipodi:cx="507.5"
+       d="m 514,526.5 c 0,3.58985 -2.91015,6.5 -6.5,6.5 -3.58985,0 -6.5,-2.91015 -6.5,-6.5 0,-3.58985 2.91015,-6.5 6.5,-6.5 3.58985,0 6.5,2.91015 6.5,6.5 z"
+       clip-path="url(#clipPath1-2)"
+       id="circle427-8"
+       cy="526.5"
+       cx="507.5"
+       r="6.5"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       transform="translate(732.45315,-30.429069)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect429-4"
+       height="25"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="3"
+       y="520"
+       x="506"
+       transform="translate(732.45315,-30.429069)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect431-3"
+       height="3"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="8"
+       y="545"
+       x="506"
+       transform="translate(732.45315,-30.429069)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect433-5"
+       height="3"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="8"
+       y="541"
+       x="506"
+       transform="translate(732.45315,-30.429069)" />
+    <text
+       clip-path="url(#clipPath1-2)"
+       id="text435-9"
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="530"
+       x="382"
+       transform="translate(732.45315,-30.429069)">autoEncrypt_comm</text>
+    <text
+       clip-path="url(#clipPath1-2)"
+       id="text437-5"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="550"
+       x="382"
+       transform="translate(732.45315,-30.429069)">key</text>
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect439-3"
+       height="112"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#030303;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="470"
+       x="98"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect441-3"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#030303;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="244"
+       y="470"
+       x="99"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect443-6"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="245"
+       y="581"
+       x="99"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect445-7"
+       height="111"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="470"
+       x="343"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       transform="matrix(0.86936049,0,0,0.9245194,741.20549,1.8144607)"
+       clip-path="url(#clipPath1-2)"
+       id="line447-3"
+       y2="467"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.11542928;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="470"
+       x2="100"
+       x1="98" />
+    <line
+       transform="matrix(0.82581399,0,0,0.9651628,787.99185,-17.009239)"
+       clip-path="url(#clipPath1-2)"
+       id="line449-8"
+       y2="467"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.12010467;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="470"
+       x2="345"
+       x1="343" />
+    <line
+       transform="matrix(0.99865463,0,0,1,728.69345,-33.556909)"
+       clip-path="url(#clipPath1-2)"
+       id="line451-2"
+       y2="467"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.00067341;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="467"
+       x2="345"
+       x1="100" />
+    <line
+       transform="matrix(0.78041064,0,0,0.84158206,803.83092,58.804149)"
+       clip-path="url(#clipPath1-2)"
+       id="line453-6"
+       y2="578"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.23392904;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="581"
+       x2="345"
+       x1="343" />
+    <line
+       transform="translate(728.24605,-33.382729)"
+       clip-path="url(#clipPath1-2)"
+       id="line455-0"
+       y2="578"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="467"
+       x2="345"
+       x1="345" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect457-0"
+       height="108"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#90c9d3;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="242"
+       y="472"
+       x="100"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect459-0"
+       height="110"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#cdffff;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="471"
+       x="99"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect461-4"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#cdffff;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="242"
+       y="471"
+       x="100"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect463-8"
+       height="1"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#648c93;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="243"
+       y="580"
+       x="100"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect465-6"
+       height="109"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#648c93;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="471"
+       x="342"
+       transform="translate(727.72349,-33.556909)" />
+    <text
+       clip-path="url(#clipPath1-2)"
+       id="text467-0"
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:bold;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="485"
+       x="186"
+       transform="translate(727.72349,-33.556909)">&lt;&lt;HWA&gt;&gt;</text>
+    <text
+       clip-path="url(#clipPath1-2)"
+       id="text469-8"
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="500"
+       x="187"
+       transform="translate(727.72349,-33.556909)">HSM_CPU2</text>
+    <image
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       clip-path="url(#clipPath1-2)"
+       id="image471-0"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAARElEQVR42mNgoBL4 D8XEshmY0E04d//Xf2LZjEgmkgoYydYMtB3T2aSAUc1kamZEjgJi2WTbbKTIxois mRHJdGLYAwgA0yQw5H1+PIsAAAAASUVORK5CYII="
+       width="15"
+       y="474"
+       x="102"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect473-5"
+       height="40"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       width="222"
+       y="523"
+       x="105"
+       transform="translate(727.72349,-33.556909)" />
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect475-3"
+       height="39"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#c6e3f9;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="221"
+       y="524"
+       x="106"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line477-7"
+       y2="553"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="528"
+       x2="302"
+       x1="302"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line479-8"
+       y2="528"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="528"
+       x2="317"
+       x1="302"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line481-9"
+       y2="533"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="528"
+       x2="322"
+       x1="317"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line483-4"
+       y2="553"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="533"
+       x2="322"
+       x1="322"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line485-7"
+       y2="553"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="553"
+       x2="302"
+       x1="322"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line487-1"
+       y2="533"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="528"
+       x2="317"
+       x1="317"
+       transform="translate(727.72349,-33.556909)" />
+    <line
+       clip-path="url(#clipPath1-2)"
+       id="line489-2"
+       y2="533"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="533"
+       x2="322"
+       x1="317"
+       transform="translate(727.72349,-33.556909)" />
+    <text
+       clip-path="url(#clipPath1-2)"
+       id="text491-4"
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       y="538"
+       x="110"
+       transform="translate(727.72349,-33.556909)">NonSecureFV_enc::HSM_CPU2</text>
+    <rect
+       clip-path="url(#clipPath1-2)"
+       id="rect395-6"
+       height="113"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       width="1"
+       y="467"
+       x="553"
+       transform="matrix(1,0,0,0.99044289,732.45315,-25.965899)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect197"
+       height="1"
+       style="stroke:none;font-family:sans-serif"
+       width="205"
+       y="632"
+       x="593"
+       transform="matrix(1,0,0,0.62854625,-27.889411,151.32405)" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect199"
+       height="139"
+       style="stroke:none;font-family:sans-serif"
+       width="1"
+       y="493"
+       x="797"
+       transform="matrix(1,0,0,0.65729539,-27.729655,133.33297)" />
+  </g>
+</svg>
diff --git a/doc/SysMLSec/fig/hsmfunc.svg b/doc/SysMLSec/fig/hsmfunc.svg
new file mode 100644
index 0000000000000000000000000000000000000000..361bd8de07fc3d58c29fba8b411e8bcf3f87aa29
--- /dev/null
+++ b/doc/SysMLSec/fig/hsmfunc.svg
@@ -0,0 +1,891 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Dialog"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   width="1269.9756"
+   height="151.32782"
+   sodipodi:docname="hsmfunc.svg">
+  <rect
+     x="1297"
+     y="209"
+     width="226"
+     style="fill:#c9f3bc;fill-opacity:0.78430002;stroke:none;font-family:sans-serif"
+     height="149"
+     id="rect141"
+     clip-path="url(#clipPath1)"
+     transform="matrix(0.89839999,0,0,0.97749685,-98.42336,-200.95206)" />
+  <g
+     id="g19"
+     style="fill:#c9f3bc;fill-opacity:0.78430002;stroke:#c9f3bc;stroke-width:0.99780333;stroke-opacity:0.78430002;font-family:sans-serif"
+     transform="matrix(0.99875588,0,0,1.0056591,-228.31388,-218.57405)">
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect21"
+       height="149"
+       style="stroke:none"
+       width="199"
+       y="218"
+       x="604" />
+  </g>
+  <rect
+     x="932"
+     y="220"
+     width="199"
+     style="fill:#c9f3bc;fill-opacity:0.78430002;stroke:none;font-family:sans-serif"
+     height="149"
+     id="rect77"
+     clip-path="url(#clipPath1)"
+     transform="matrix(1.0049765,0,0,0.99444811,-234.69187,-216.12073)" />
+  <metadata
+     id="metadata243">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="2048"
+     inkscape:window-height="1086"
+     id="namedview241"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="0.63429569"
+     inkscape:cx="977.94468"
+     inkscape:cy="245.32161"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <!--Generated by the Batik Graphics2D SVG Generator-->
+  <g
+     id="g177"
+     style="fill:#c9f3bc;fill-opacity:0.78430002;stroke:#c9f3bc;stroke-width:0.9995057;stroke-opacity:0.78430002;font-family:sans-serif"
+     transform="matrix(0.9966762,0,0,1.0043275,-218.05333,-218.08604)">
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect179"
+       height="149"
+       style="stroke:none"
+       width="226"
+       y="218"
+       x="219" />
+  </g>
+  <defs
+     id="genericDefs">
+    <defs
+       id="defs1">
+      <clipPath
+         id="clipPath1"
+         clipPathUnits="userSpaceOnUse">
+        <path
+           inkscape:connector-curvature="0"
+           id="path9"
+           d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z" />
+      </clipPath>
+    </defs>
+    <clipPath
+       id="clipPath1-8"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path9-6"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z" />
+    </clipPath>
+    <clipPath
+       id="clipPath1-9"
+       clipPathUnits="userSpaceOnUse">
+      <path
+         inkscape:connector-curvature="0"
+         id="path9-9"
+         d="m 0,0 2510,0 0,1510 L 0,1510 0,0 z" />
+    </clipPath>
+  </defs>
+  <g
+     id="g15"
+     style="font-family:sans-serif"
+     transform="translate(-229.06595,-216.5)">
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect17"
+       height="150"
+       style="fill:none"
+       width="200"
+       y="217"
+       x="603" />
+  </g>
+  <text
+     x="694"
+     y="246"
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     xml:space="preserve"
+     id="text25"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)">T1</text>
+  <image
+     style="font-size:14px;font-family:sans-serif"
+     x="773"
+     y="232"
+     width="15"
+     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAdklEQVR42mNgGCjA iMb/T4peDM3n7v8iqMtIkY0BpI4Rj42MePSDLWGC8WA2ItH/oYaiYzhgQnYKMo1s KAwjGQoGLDAnggRhfsHiR6zeg2n+j8VmRkKhT8jPeAELIT9D+f/xacbqZ0JxTnYK Q04kyIL/GQY9AAAW0Uztnea6vQAAAABJRU5ErkJggg=="
+     height="16"
+     preserveAspectRatio="none"
+     id="image27"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="790"
+     y="272"
+     width="26"
+     style="font-size:14px;fill:#68e5ff;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect29"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="790"
+     y="272"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect31"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="793,275 793,295 813,285 "
+     id="polygon33"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="793,275 793,295 813,285 "
+     id="polygon35"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <line
+     transform="translate(-228.22986,-216.56967)"
+     x1="813"
+     x2="813"
+     y1="295"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     y2="275"
+     id="line37"
+     clip-path="url(#clipPath1)" />
+  <text
+     x="772"
+     y="265"
+     style="font-size:8px;stroke:none;font-family:sans-serif"
+     xml:space="preserve"
+     id="text41"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)">???</text>
+  <ellipse
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     rx="3"
+     cx="781"
+     ry="4.5"
+     cy="276.5"
+     id="ellipse43"
+     clip-path="url(#clipPath1)"
+     d="m 784,276.5 c 0,2.48528 -1.34315,4.5 -3,4.5 -1.65685,0 -3,-2.01472 -3,-4.5 0,-2.48528 1.34315,-4.5 3,-4.5 1.65685,0 3,2.01472 3,4.5 z"
+     sodipodi:cx="781"
+     sodipodi:cy="276.5"
+     sodipodi:rx="3"
+     sodipodi:ry="4.5"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="777"
+     y="275"
+     width="9"
+     style="font-size:14px;fill:#808080;stroke:none;font-family:sans-serif"
+     height="7"
+     id="rect45"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="777"
+     y="275"
+     width="9"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="7"
+     id="rect47"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="590"
+     y="311"
+     width="26"
+     style="font-size:14px;fill:#c4a67a;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect49"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="590"
+     y="311"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect51"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="613,314 613,334 593,324 "
+     id="polygon53"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="613,314 613,334 593,324 "
+     id="polygon55"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="590"
+     y="266"
+     width="26"
+     style="font-size:14px;fill:#68e5ff;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect57"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="590"
+     y="266"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect59"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="613,269 613,289 593,279 "
+     id="polygon61"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="613,269 613,289 593,279 "
+     id="polygon63"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="590"
+     y="226"
+     width="26"
+     style="font-size:14px;fill:#68e5ff;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect65"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="590"
+     y="226"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect67"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="593,229 593,249 613,239 "
+     id="polygon69"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="593,229 593,249 613,239 "
+     id="polygon71"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="931"
+     y="219"
+     width="200"
+     style="font-size:14px;fill:none;stroke-width:1.00562096;font-family:sans-serif"
+     height="150"
+     id="rect73"
+     clip-path="url(#clipPath1)"
+     transform="matrix(1,0,0,0.9888521,-229.06595,-214.05861)" />
+  <text
+     x="1022"
+     y="248"
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     xml:space="preserve"
+     id="text81"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)">T2</text>
+  <image
+     style="font-size:14px;font-family:sans-serif"
+     x="1101"
+     y="234"
+     width="15"
+     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAdklEQVR42mNgGCjA iMb/T4peDM3n7v8iqMtIkY0BpI4Rj42MePSDLWGC8WA2ItH/oYaiYzhgQnYKMo1s KAwjGQoGLDAnggRhfsHiR6zeg2n+j8VmRkKhT8jPeAELIT9D+f/xacbqZ0JxTnYK Q04kyIL/GQY9AAAW0Uztnea6vQAAAABJRU5ErkJggg=="
+     height="16"
+     preserveAspectRatio="none"
+     id="image83"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="918"
+     y="272"
+     width="26"
+     style="font-size:14px;fill:#68e5ff;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect85"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="918"
+     y="272"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect87"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="921,275 921,295 941,285 "
+     id="polygon89"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="921,275 921,295 941,285 "
+     id="polygon91"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <line
+     transform="translate(-228.09051,-216.43033)"
+     x1="941"
+     x2="941"
+     y1="295"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     y2="275"
+     id="line93"
+     clip-path="url(#clipPath1)" />
+  <text
+     x="906"
+     y="280"
+     style="font-size:8px;stroke:none;font-family:sans-serif"
+     xml:space="preserve"
+     id="text97"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <ellipse
+     transform="translate(-227.53311,-210.64735)"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     rx="5"
+     cx="905"
+     ry="7.5"
+     cy="291.5"
+     id="ellipse99"
+     clip-path="url(#clipPath1)"
+     d="m 910,291.5 c 0,4.14214 -2.23858,7.5 -5,7.5 -2.76142,0 -5,-3.35786 -5,-7.5 0,-4.14214 2.23858,-7.5 5,-7.5 2.76142,0 5,3.35786 5,7.5 z"
+     sodipodi:cx="905"
+     sodipodi:cy="291.5"
+     sodipodi:rx="5"
+     sodipodi:ry="7.5" />
+  <polygon
+     transform="translate(-227.53311,-210.64735)"
+     style="font-size:14px;fill:#808080;stroke:none;font-family:sans-serif"
+     points="898,306 914,306 898,290 "
+     id="polygon101"
+     clip-path="url(#clipPath1)" />
+  <polygon
+     transform="translate(-227.53311,-210.64735)"
+     style="font-size:14px;fill:#808080;stroke:none;font-family:sans-serif"
+     points="914,290 898,290 914,306 "
+     id="polygon103"
+     clip-path="url(#clipPath1)" />
+  <text
+     transform="translate(-227.4286,-209.67191)"
+     x="899"
+     y="302"
+     style="font-size:8px;stroke:none;font-family:sans-serif"
+     xml:space="preserve"
+     id="text109"
+     clip-path="url(#clipPath1)">S</text>
+  <text
+     transform="translate(-228.6479,-212.31954)"
+     x="906"
+     y="299"
+     style="font-size:8px;stroke:none;font-family:sans-serif"
+     xml:space="preserve"
+     id="text111"
+     clip-path="url(#clipPath1)">W</text>
+  <rect
+     x="1118"
+     y="323"
+     width="26"
+     style="font-size:14px;fill:#c4a67a;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect113"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="1118"
+     y="323"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect115"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="1121,326 1121,346 1141,336 "
+     id="polygon117"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="1121,326 1121,346 1141,336 "
+     id="polygon119"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="1118"
+     y="281"
+     width="26"
+     style="font-size:14px;fill:#68e5ff;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect121"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="1118"
+     y="281"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect123"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="1121,284 1121,304 1141,294 "
+     id="polygon125"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="1121,284 1121,304 1141,294 "
+     id="polygon127"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="1118"
+     y="239"
+     width="26"
+     style="font-size:14px;fill:#68e5ff;stroke:none;font-family:sans-serif"
+     height="26"
+     id="rect129"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     x="1118"
+     y="239"
+     width="26"
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     height="26"
+     id="rect131"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;fill:none;font-family:sans-serif"
+     points="1141,242 1141,262 1121,252 "
+     id="polygon133"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <polygon
+     style="font-size:14px;stroke:none;font-family:sans-serif"
+     points="1141,242 1141,262 1121,252 "
+     id="polygon135"
+     clip-path="url(#clipPath1)"
+     transform="translate(-229.06595,-216.5)" />
+  <rect
+     transform="matrix(0.8922537,0,0,0.97109655,-89.426755,-198.66394)"
+     x="1296"
+     y="208"
+     width="227"
+     style="font-size:14px;fill:none;stroke-width:1.07429767;font-family:sans-serif"
+     height="150"
+     id="rect137"
+     clip-path="url(#clipPath1)" />
+  <rect
+     x="918"
+     y="272"
+     width="26"
+     style="font-size:14px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.63913441;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+     height="26"
+     id="rect87-1"
+     clip-path="url(#clipPath1-8)"
+     transform="matrix(0.614111,0,0,0.60607164,106.45932,-85.48902)" />
+  <line
+     transform="matrix(0.72825359,-0.74173869,0.73115565,0.73879463,-215.59126,574.46944)"
+     x1="941"
+     x2="941"
+     y1="295"
+     style="font-size:14px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:0.96209174;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+     y2="275"
+     id="line93-3"
+     clip-path="url(#clipPath1-9)" />
+  <g
+     id="g143"
+     style="font-size:14px;stroke-width:1.00451326;font-family:sans-serif"
+     transform="matrix(0.99103415,0,0,1,-215.54544,-216.5)">
+    <text
+       clip-path="url(#clipPath1)"
+       id="text145"
+       xml:space="preserve"
+       style="stroke:none"
+       y="237"
+       x="1371"
+       transform="translate(-6.7609628,4.1384484)">HSM_CPU2</text>
+    <image
+       clip-path="url(#clipPath1)"
+       id="image147"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAdklEQVR42mNgGCjA iMb/T4peDM3n7v8iqMtIkY0BpI4Rj42MePSDLWGC8WA2ItH/oYaiYzhgQnYKMo1s KAwjGQoGLDAnggRhfsHiR6zeg2n+j8VmRkKhT8jPeAELIT9D+f/xacbqZ0JxTnYK Q04kyIL/GQY9AAAW0Uztnea6vQAAAABJRU5ErkJggg=="
+       width="15"
+       y="223"
+       x="1493"
+       style="stroke-width:1.00451326"
+       transform="translate(-15.510444,-0.98534486)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text149"
+       xml:space="preserve"
+       style="font-size:12px;stroke:none"
+       y="266"
+       x="1311">+ channelIndex = 0 : Natural;</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect151"
+       height="26"
+       style="fill:#c4a67a;stroke:none"
+       width="26"
+       y="323"
+       x="1283" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect153"
+       height="26"
+       style="fill:none;stroke-width:1.00451326"
+       width="26"
+       y="323"
+       x="1283" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon155"
+       points="1306,336 1286,326 1286,346 "
+       style="fill:none;stroke-width:1.00451326" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon157"
+       points="1306,336 1286,326 1286,346 "
+       style="stroke:none" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect159"
+       height="26"
+       style="fill:#68e5ff;stroke:none"
+       width="26"
+       y="281"
+       x="1283" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect161"
+       height="26"
+       style="fill:none;stroke-width:1.00451326"
+       width="26"
+       y="281"
+       x="1283" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon163"
+       points="1306,294 1286,284 1286,304 "
+       style="fill:none;stroke-width:1.00451326" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon165"
+       points="1306,294 1286,284 1286,304 "
+       style="stroke:none" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect167"
+       height="26"
+       style="fill:#68e5ff;stroke:none"
+       width="26"
+       y="238"
+       x="1283" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect169"
+       height="26"
+       style="fill:none;stroke-width:1.00451326"
+       width="26"
+       y="238"
+       x="1283" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon171"
+       points="1286,251 1306,241 1306,261 "
+       style="fill:none;stroke-width:1.00451326" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon173"
+       points="1286,251 1306,241 1306,261 "
+       style="stroke:none" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect175"
+       height="150"
+       style="fill:none;stroke-width:1.00451326"
+       width="227"
+       y="217"
+       x="218" />
+  </g>
+  <g
+     id="g181"
+     style="font-size:14px;font-family:sans-serif"
+     transform="translate(-229.06595,-216.5)">
+    <text
+       clip-path="url(#clipPath1)"
+       id="text183"
+       xml:space="preserve"
+       style="stroke:none"
+       y="246"
+       x="293">HSM_CPU1</text>
+    <image
+       clip-path="url(#clipPath1)"
+       id="image185"
+       preserveAspectRatio="none"
+       height="16"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAAAdklEQVR42mNgGCjA iMb/T4peDM3n7v8iqMtIkY0BpI4Rj42MePSDLWGC8WA2ItH/oYaiYzhgQnYKMo1s KAwjGQoGLDAnggRhfsHiR6zeg2n+j8VmRkKhT8jPeAELIT9D+f/xacbqZ0JxTnYK Q04kyIL/GQY9AAAW0Uztnea6vQAAAABJRU5ErkJggg=="
+       width="15"
+       y="232"
+       x="415" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text187"
+       xml:space="preserve"
+       style="font-size:12px;stroke:none"
+       y="275"
+       x="233">+ channelIndex = 0 : Natural;</text>
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect189"
+       height="26"
+       style="fill:#c4a67a;stroke:none"
+       width="26"
+       y="311"
+       x="432" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect191"
+       height="26"
+       style="fill:none"
+       width="26"
+       y="311"
+       x="432" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon193"
+       points="455,334 435,324 455,314 "
+       style="fill:none" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon195"
+       points="455,334 435,324 455,314 "
+       style="stroke:none" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect197"
+       height="26"
+       style="fill:#68e5ff;stroke:none"
+       width="26"
+       y="266"
+       x="432" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect199"
+       height="26"
+       style="fill:none"
+       width="26"
+       y="266"
+       x="432" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon201"
+       points="455,289 435,279 455,269 "
+       style="fill:none" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon203"
+       points="455,289 435,279 455,269 "
+       style="stroke:none" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect205"
+       height="26"
+       style="fill:#68e5ff;stroke:none"
+       width="26"
+       y="227"
+       x="432" />
+    <rect
+       clip-path="url(#clipPath1)"
+       id="rect207"
+       height="26"
+       style="fill:none"
+       width="26"
+       y="227"
+       x="432" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon209"
+       points="435,250 455,240 435,230 "
+       style="fill:none" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon211"
+       points="435,250 455,240 435,230 "
+       style="stroke:none" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text213"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;stroke:none"
+       y="285"
+       x="848">comm</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line215"
+       y2="285"
+       style="fill:none"
+       y1="285"
+       x2="918"
+       x1="816" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text217"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;stroke:none"
+       y="336"
+       x="1165">startHSM_CPU2</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line219"
+       y2="336"
+       style="fill:none"
+       y1="336"
+       x2="1144"
+       x1="1283" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text221"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;stroke:none"
+       y="294"
+       x="1167">data_comm_T2</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line223"
+       y2="294"
+       style="fill:none"
+       y1="294"
+       x2="1144"
+       x1="1283" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text225"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;stroke:none"
+       y="251"
+       x="1157">retData_comm_T2</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line227"
+       y2="252"
+       style="fill:none"
+       y1="251"
+       x2="1144"
+       x1="1283" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text229"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;stroke:none"
+       y="324"
+       x="476">startHSM_CPU1</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line231"
+       y2="324"
+       style="fill:none"
+       y1="324"
+       x2="590"
+       x1="458" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text233"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;stroke:none"
+       y="279"
+       x="477">data_comm_T1</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line235"
+       y2="279"
+       style="fill:none"
+       y1="279"
+       x2="590"
+       x1="458" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text237"
+       xml:space="preserve"
+       style="font-size:12px;font-style:italic;stroke:none"
+       y="239"
+       x="468">retData_comm_T1</text>
+    <line
+       clip-path="url(#clipPath1)"
+       id="line239"
+       y2="239"
+       style="fill:none"
+       y1="240"
+       x2="590"
+       x1="458" />
+  </g>
+</svg>
diff --git a/doc/SysMLSec/fig/hsmt1.svg b/doc/SysMLSec/fig/hsmt1.svg
new file mode 100644
index 0000000000000000000000000000000000000000..4441bc0347129704ecbb52a23add798dc01bb330
--- /dev/null
+++ b/doc/SysMLSec/fig/hsmt1.svg
@@ -0,0 +1,724 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:Dialog"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   width="222.29492"
+   height="242.82289"
+   sodipodi:docname="hsmt1.svg">
+  <metadata
+     id="metadata191">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="2048"
+     inkscape:window-height="1086"
+     id="namedview189"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="1.7940591"
+     inkscape:cx="272.56063"
+     inkscape:cy="191.07921"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g5" />
+  <!--Generated by the Batik Graphics2D SVG Generator-->
+  <defs
+     id="genericDefs">
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-5">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1770 L 0,1770 0,0 z"
+         id="path9-4" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3266">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1770 L 0,1770 0,0 z"
+         id="path3268" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3270">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1770 L 0,1770 0,0 z"
+         id="path3272" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath1-9">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1770 L 0,1770 0,0 z"
+         id="path9-5" />
+    </clipPath>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3312">
+      <path
+         inkscape:connector-curvature="0"
+         d="m 0,0 2510,0 0,1770 L 0,1770 0,0 z"
+         id="path3314" />
+    </clipPath>
+  </defs>
+  <g
+     id="g5"
+     transform="translate(-323.31759,-127.64184)">
+    <defs
+       id="defs1">
+      <clipPath
+         clipPathUnits="userSpaceOnUse"
+         id="clipPath1">
+        <path
+           d="m 0,0 2510,0 0,1770 L 0,1770 0,0 z"
+           id="path9"
+           inkscape:connector-curvature="0" />
+      </clipPath>
+    </defs>
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon19"
+       points="418,421 414,430 409,421 "
+       style="stroke:none;font-family:sans-serif"
+       transform="translate(-19.567548,-82.055525)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon21"
+       points="418,421 414,430 409,421 "
+       style="fill:none;font-family:sans-serif"
+       transform="translate(-19.567548,-82.055525)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line35"
+       y2="206"
+       style="fill:none;stroke-width:1.07584798;font-family:sans-serif"
+       y1="186"
+       x2="397"
+       x1="397"
+       transform="matrix(1,0,0,0.86396902,0,25.233746)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon37"
+       points="401,197 397,206 392,197 "
+       style="stroke:none;font-family:sans-serif" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon39"
+       points="401,197 397,206 392,197 "
+       style="fill:none;font-family:sans-serif" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon43"
+       points="397,266 392,257 401,257 "
+       style="stroke:none;font-family:sans-serif"
+       transform="translate(0.19706897,-5.0252588)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon45"
+       points="397,266 392,257 401,257 "
+       style="fill:none;font-family:sans-serif"
+       transform="translate(0.19706897,-5.0252588)" />
+    <circle
+       sodipodi:ry="7.5"
+       sodipodi:rx="7.5"
+       sodipodi:cy="58.5"
+       sodipodi:cx="414.5"
+       d="m 422,58.5 c 0,4.142136 -3.35786,7.5 -7.5,7.5 -4.14214,0 -7.5,-3.357864 -7.5,-7.5 0,-4.142136 3.35786,-7.5 7.5,-7.5 4.14214,0 7.5,3.357864 7.5,7.5 z"
+       clip-path="url(#clipPath1)"
+       id="circle53"
+       cy="58.5"
+       cx="414.5"
+       r="7.5"
+       style="stroke:none;font-family:sans-serif"
+       transform="translate(-18.67274,76.641843)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon57"
+       points="437,371 447,381 437,391 382,391 382,371 "
+       style="fill:#68e5ff;stroke:none;font-family:sans-serif"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line61"
+       y2="396"
+       style="fill:none;stroke-width:0.79833925;font-family:sans-serif"
+       y1="391"
+       x2="414"
+       x1="414"
+       transform="matrix(1,0,0,1.5690076,-19.706897,-281.1211)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line63"
+       y2="372"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="372"
+       x2="438"
+       x1="383"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line65"
+       y2="392"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="392"
+       x2="438"
+       x1="383"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line67"
+       y2="392"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="372"
+       x2="383"
+       x1="383"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line69"
+       y2="382"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="372"
+       x2="448"
+       x1="438"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line71"
+       y2="382"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="392"
+       x2="448"
+       x1="438"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line73"
+       y2="371"
+       style="fill:none;font-family:sans-serif"
+       y1="371"
+       x2="437"
+       x1="382"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line75"
+       y2="391"
+       style="fill:none;font-family:sans-serif"
+       y1="391"
+       x2="437"
+       x1="382"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line77"
+       y2="391"
+       style="fill:none;font-family:sans-serif"
+       y1="371"
+       x2="382"
+       x1="382"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line79"
+       y2="381"
+       style="fill:none;font-family:sans-serif"
+       y1="371"
+       x2="447"
+       x1="437"
+       transform="translate(-19.706897,-58.923623)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line81"
+       y2="381"
+       style="fill:none;font-family:sans-serif"
+       y1="391"
+       x2="447"
+       x1="437"
+       transform="translate(-19.706897,-58.923623)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text83"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="371"
+       x="387"
+       transform="translate(-24.83069,-60.40164)">chl</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text85"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="386"
+       x="387"
+       transform="translate(-19.706897,-58.923623)">comm(1)</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text87"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="402"
+       x="430"
+       transform="translate(-19.706897,-58.923623)">sec:hsmSec_comm</text>
+    <circle
+       sodipodi:ry="8"
+       sodipodi:rx="8"
+       sodipodi:cy="445"
+       sodipodi:cx="414"
+       d="m 422,445 c 0,4.41828 -3.58172,8 -8,8 -4.41828,0 -8,-3.58172 -8,-8 0,-4.41828 3.58172,-8 8,-8 4.41828,0 8,3.58172 8,8 z"
+       clip-path="url(#clipPath1)"
+       id="circle89"
+       cy="445"
+       cx="414"
+       r="8"
+       style="stroke:none;font-family:sans-serif"
+       transform="translate(-19.903966,-85.035262)" />
+    <circle
+       sodipodi:ry="10"
+       sodipodi:rx="10"
+       sodipodi:cy="445"
+       sodipodi:cx="414"
+       d="m 424,445 c 0,5.52285 -4.47715,10 -10,10 -5.52285,0 -10,-4.47715 -10,-10 0,-5.52285 4.47715,-10 10,-10 5.52285,0 10,4.47715 10,10 z"
+       clip-path="url(#clipPath1)"
+       id="circle91"
+       cy="445"
+       cx="414"
+       r="10"
+       style="fill:none;font-family:sans-serif"
+       transform="translate(-19.903966,-85.035262)" />
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon95"
+       points="335,161 449,161 459,171 449,181 335,181 "
+       style="fill:#c4a67a;stroke:none;font-family:sans-serif" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line97"
+       y2="162"
+       style="fill:none;stroke:#c4a67a;font-family:sans-serif"
+       y1="162"
+       x2="450"
+       x1="336" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line99"
+       y2="182"
+       style="fill:none;stroke:#c4a67a;stroke-width:1.00365508;font-family:sans-serif"
+       y1="182"
+       x2="450"
+       x1="336"
+       transform="matrix(0.99272963,0,0,1,2.43921,0)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line101"
+       y2="182"
+       style="fill:none;stroke:#c4a67a;font-family:sans-serif"
+       y1="162"
+       x2="336"
+       x1="336" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line103"
+       y2="172"
+       style="fill:none;stroke:#c4a67a;stroke-width:1.03987527;font-family:sans-serif"
+       y1="162"
+       x2="460"
+       x1="450"
+       transform="matrix(0.96864652,0,0,0.95471164,14.109067,7.3367147)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line105"
+       y2="172"
+       style="fill:none;stroke:#c4a67a;font-family:sans-serif"
+       y1="182"
+       x2="460"
+       x1="450"
+       transform="translate(-0.24386041,-0.38320922)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line109"
+       y2="186"
+       style="fill:none;font-family:sans-serif"
+       y1="181"
+       x2="397"
+       x1="397" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line111"
+       y2="161"
+       style="fill:none;font-family:sans-serif"
+       y1="161"
+       x2="449"
+       x1="335" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line113"
+       y2="181"
+       style="fill:none;font-family:sans-serif"
+       y1="181"
+       x2="449"
+       x1="335" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line115"
+       y2="181"
+       style="fill:none;font-family:sans-serif"
+       y1="161"
+       x2="335"
+       x1="335" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line117"
+       y2="171"
+       style="fill:none;font-family:sans-serif"
+       y1="161"
+       x2="459"
+       x1="449" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line119"
+       y2="171"
+       style="fill:none;font-family:sans-serif"
+       y1="181"
+       x2="459"
+       x1="449" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text121"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="161"
+       x="340"
+       transform="translate(-4.1384484,-1.9706897)">req</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text123"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="176"
+       x="340">startHSM_CPU1(0)</text>
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon125"
+       points="458,221 448,231 337,231 337,211 448,211 "
+       style="fill:#68e5ff;stroke:none;font-family:sans-serif"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line129"
+       y2="236"
+       style="fill:none;stroke-width:0.46477187;font-family:sans-serif"
+       y1="231"
+       x2="397"
+       x1="397"
+       transform="matrix(1,0,0,4.6293536,-0.19911999,-840.19487)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line131"
+       y2="212"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="212"
+       x2="449"
+       x1="338"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line133"
+       y2="232"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="232"
+       x2="449"
+       x1="338"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line135"
+       y2="232"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="212"
+       x2="338"
+       x1="338"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line137"
+       y2="222"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="212"
+       x2="459"
+       x1="449"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line139"
+       y2="222"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="232"
+       x2="459"
+       x1="449"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line141"
+       y2="211"
+       style="fill:none;font-family:sans-serif"
+       y1="211"
+       x2="448"
+       x1="337"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line143"
+       y2="231"
+       style="fill:none;font-family:sans-serif"
+       y1="231"
+       x2="448"
+       x1="337"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line145"
+       y2="231"
+       style="fill:none;font-family:sans-serif"
+       y1="211"
+       x2="337"
+       x1="337"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line147"
+       y2="221"
+       style="fill:none;font-family:sans-serif"
+       y1="211"
+       x2="458"
+       x1="448"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line149"
+       y2="221"
+       style="fill:none;font-family:sans-serif"
+       y1="231"
+       x2="458"
+       x1="448"
+       transform="translate(-0.19911999,-3.6288701)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text151"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="211"
+       x="342"
+       transform="translate(-6.3304675,-5.0223582)">chl</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text153"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="226"
+       x="342"
+       transform="translate(-0.19911999,-3.6288701)">data_comm_T1(1)</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text155"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="242"
+       x="427"
+       transform="translate(-0.19911999,-3.6288701)">sec:hsmSec_comm</text>
+    <polygon
+       clip-path="url(#clipPath1)"
+       id="polygon157"
+       points="469,271 469,291 325,291 335,281 325,271 "
+       style="fill:#68e5ff;stroke:none;font-family:sans-serif"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line161"
+       y2="296"
+       style="fill:none;stroke-width:0.51465857;font-family:sans-serif"
+       y1="291"
+       x2="397"
+       x1="397"
+       transform="matrix(1,0,0,3.775388,-1.1824138,-814.52712)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line163"
+       y2="272"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="272"
+       x2="470"
+       x1="326"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line165"
+       y2="292"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="272"
+       x2="470"
+       x1="470"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line167"
+       y2="292"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="292"
+       x2="470"
+       x1="326"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line169"
+       y2="282"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="272"
+       x2="336"
+       x1="326"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line171"
+       y2="282"
+       style="fill:none;stroke:#68e5ff;font-family:sans-serif"
+       y1="292"
+       x2="336"
+       x1="326"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line173"
+       y2="271"
+       style="fill:none;font-family:sans-serif"
+       y1="271"
+       x2="469"
+       x1="325"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line175"
+       y2="291"
+       style="fill:none;font-family:sans-serif"
+       y1="271"
+       x2="469"
+       x1="469"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line177"
+       y2="291"
+       style="fill:none;font-family:sans-serif"
+       y1="291"
+       x2="469"
+       x1="325"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line179"
+       y2="281"
+       style="fill:none;font-family:sans-serif"
+       y1="271"
+       x2="335"
+       x1="325"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <line
+       clip-path="url(#clipPath1)"
+       id="line181"
+       y2="281"
+       style="fill:none;font-family:sans-serif"
+       y1="291"
+       x2="335"
+       x1="325"
+       transform="translate(-1.1824138,-8.2768968)" />
+    <text
+       clip-path="url(#clipPath1)"
+       id="text183"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="271"
+       x="330"
+       transform="translate(-4.3355173,-9.5578451)">chl</text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text185"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="286"
+       x="337"
+       transform="translate(-1.1824138,-8.2768968)">retData_comm_T1(1) </text>
+    <text
+       clip-path="url(#clipPath1)"
+       id="text187"
+       xml:space="preserve"
+       style="stroke:none;font-family:sans-serif"
+       y="302"
+       x="433"
+       transform="translate(-1.1824138,-8.2768968)">sec:hsmSec_comm</text>
+    <line
+       transform="matrix(1,0,0,0.75131773,-1.1796429,-0.18168117)"
+       clip-path="url(#clipPath1-5)"
+       id="line35-4"
+       y2="206"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1.15368748;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       y1="186"
+       x2="397"
+       x1="397" />
+    <polygon
+       transform="translate(-1.1796429,-46.312243)"
+       clip-path="url(#clipPath1-5)"
+       id="polygon37-3"
+       points="397,206 392,197 401,197 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif" />
+    <polygon
+       transform="translate(-1.1796429,-46.312243)"
+       clip-path="url(#clipPath1-5)"
+       id="polygon39-7"
+       points="397,206 392,197 401,197 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif" />
+    <polygon
+       clip-path="url(#clipPath1-9)"
+       id="polygon43-9"
+       points="392,257 401,257 397,266 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:sans-serif"
+       transform="translate(-1.2781769,44.561986)" />
+    <polygon
+       clip-path="url(#clipPath1-9)"
+       id="polygon45-0"
+       points="392,257 401,257 397,266 "
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;font-family:sans-serif"
+       transform="translate(-1.2781769,44.561986)" />
+  </g>
+</svg>
diff --git a/doc/SysMLSec/sysmlsec_documentation.tex b/doc/SysMLSec/sysmlsec_documentation.tex
index 6b1a16bec0228f9dfb321714a968c982da9e3ea0..d96662dfe82351ed083818d30e1eb5b92af2f30a 100644
--- a/doc/SysMLSec/sysmlsec_documentation.tex
+++ b/doc/SysMLSec/sysmlsec_documentation.tex
@@ -321,6 +321,8 @@ If you double-click on the SE operator of T1, the following windows should open
 \item The use of \textbf{cryptographic material}: keys, nonces and precise algorithm (AES, etc.) 
 \end{itemize}
 
+Channels can be tagged with cryptographic configurations on the Security tab, with the options shown in Figure \ref{fig:channelsec}. By default, channels tagged with cryptographic configurations will send the data in their encrypted form. However, with the use of Hardware Security Modules described below, it may be necessary to send the unencrypted data to the HSM to encrypt, where 'Encrypted form' needs to be marked 'No'. In addition, if a task is to be an attacker task (see our paper in Modelsward 2018), channels can also be marked as `attacker channels'. If a channel sends data to be secured in the unencrypted form, on the activity diagram, the Cryptographic Configuration name is displayed in red. 
+
 
 \begin{figure*}[htbp]
 \centering
@@ -328,6 +330,14 @@ If you double-click on the SE operator of T1, the following windows should open
 \caption{Cryptographic configuration dialog window} \label{fig:ccdialog}
 \end{figure*}
 
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.7\textwidth]{fig/channelsecurityoptions.png}
+\caption{Channel security options dialog window} \label{fig:channelsec}
+\end{figure*}
+
 Let's now consider a third mapping (named "NonSecureArchitectureWithSecureFV") which basically consists in mapping the secure tasks to the non secure architecture (i.e., the one with the public bus). The result of the security verification of this system is given in Figure \ref{fig:fv3_result}. The confidentiality property is now verified.
 
 \begin{figure*}[htbp]
@@ -354,7 +364,7 @@ Without taking into account penalties of the hardware platform (e.g. cache miss,
 
 \subsection{Automatic Security Generation}
 
-Given security requirements and an unsecured model, our toolkit magically adds security elements. It can 1) add the security operators to a functional view, 2) Add an HSM performing all security operations, and 3) Automatically map keys securely. See the thesis of Letitia Li, `Safe and Secure Model-Driven Design for Embedded Systems' for the detailed algorithms on how to add security.
+Given security requirements and an unsecured model, our toolkit magically adds security elements. It can 1) add the security operators to a functional view, optionally with an added HSM performing all security operations, and 2) Automatically map keys securely. See the thesis of Letitia Li, `Safe and Secure Model-Driven Design for Embedded Systems' for the detailed algorithms on how to add security.
 
 \begin{figure*}[htbp]
 \centering
@@ -392,19 +402,48 @@ When the option to add security operators is selected, there are multiple option
 
 \subsubsection{Adding Hardware Security Modules} 
 
- After a designer models a system, our toolkit can automatically add
+For automatic security generation, there is also an option to add HSMs to perform all the security operators intead. 
+Our toolkit can automatically add
 HSMs to designated tasks, including making all of the modifications to the
 diagrams relating to sending the data to the HSM, generating the HSM's activity
 diagram, etc. A single Hardware Security Module is added to each processor which executes at least one of the designated tasks. If multiple tasks mapped to a single CPU are designated to have a HSM added to them, then only a single HSM will be added.
 
 For each HSM to be added to perform security operations for one or more tasks, first, the architectural diagram is modified to add a Hardware Accelerator and memory, with a connecting private bus.
 
-Next, each task is modified, so that before each instance of sending a message which should be secure, the task first sends the data to the HSM. The HSM then performs the security operations, and returns the secured message to the task, which then sends the secured message to the receiving task. When a task receives data to be decrypted, it similarly sends the messages to the HSM, which then decrypts it and sends the message back, and which point the receiving task can understand the contents of the message.
+Next, each task is modified, so that before each instance of sending a message which should be secure, the task first issues a request with the index of the channel (in the case of multiple channels to secure), and sends the data to the HSM. The HSM then performs the security operations, and returns the secured message to the task, which then sends the secured message to the receiving task. When a task receives data to be decrypted, it similarly sends the messages to the HSM, which then decrypts it and sends the message back, and which point the receiving task can understand the contents of the message.
+
+For example, using the model in our example, chose to ensure confidentiality, and add a HSM to each task. A new HSM task is added for each HSM in the Functional model as shown in Figure \ref{fig:hsmfunc}, and a secure bus, memory, and Hardware Accelerator are added for each CPU on the Architecture/Mapping model as shown in Figure \ref{fig:hsmarch}. Figure \ref{fig:hsmt1act} shows how the activity diagram of task t1 is modified to send communications to the HSM to be encrypted the activity diagram of the HSM. 
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{build/hsmfunc-svg.pdf}
+\caption{Functional Model with added Hardware Security Module Tasks} \label{fig:hsmfunc}
+\end{figure*}
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.99\textwidth]{build/hsmarch-svg.pdf}
+\caption{Architecture Model with added Hardware Security Modules} \label{fig:hsmarch}
+\end{figure*}
+
+
+\begin{figure*}[htbp]
+\centering
+\includegraphics[width=0.4\textwidth]{build/hsmt1-svg.pdf}
+\includegraphics[width=0.4\textwidth]{build/hsmact-svg.pdf}
+\caption{Modified Activity Diagram of T1 and HSM} \label{fig:hsmt1act}
+\end{figure*}
+
+
+
 
 \subsubsection{Mapping Keys}
 
 With multiple Cryptographic Configurations, it may become tedious to the map all of the keys to memory. Our toolkit therefore can find every Cryptographic Configuration used by a task, and then, depending on the type of the Cryptographic Configuration, map each applicable key to a memory that the task can securely access. For Cryptographic Configurations of type symmetric encryption or MAC, both the sending and receiving task will need to be able to access the key. For asymmetric encryption, however, all the sending tasks will need the public key while only the receiving task will need to access the private key. 
 
+At every security generation, keys are automatically generated and mapped securely. There is also the option to add keys alone after completing a design by hand.
+
 If a key is sent along a bus accessible to an attacker, then the key would be known to the attacker, so we wish to avoid sending keys along public buses. For each task which needs the key, the algorithm searches for securely accessible memories from the processor to which it is mapped. The algorithm traverses all possible private buses and bridges using breadth-first search, until it finds a memory. The key is then mapped to that memory. If all possible secure paths are searched and no memories are found, then a warning is issued saying it is impossible to map keys for that task.
 
 For example, for the automatically secured model in Figure \ref{fig:secfv1}, the keys for autoEncrypt\_comm are mapped as shown in Figure \ref{fig:mapkey}, where there is a secure path to the memory. If they keys were mapped to MainMemory, then the attacker could recover the key when it was read over the public bus MainBus. 
diff --git a/modeling/AVATAR/CoffeeMachine_Avatar.xml b/modeling/AVATAR/CoffeeMachine_Avatar.xml
index 2015d36ada59959a085e44379d2e2be92fffea34..6cda3f8c98160baaa5144fd42a48a76581d999c2 100644
--- a/modeling/AVATAR/CoffeeMachine_Avatar.xml
+++ b/modeling/AVATAR/CoffeeMachine_Avatar.xml
@@ -1,79 +1,15 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 
 <TURTLEGMODELING version="1.0beta">
 
 <Modeling type="Avatar Requirement" nameTab="AVATAR Requirements" >
 <AvatarRDPanel name="AVATAR RD" minX="10" maxX="1900" minY="10" maxY="900" zoom="1.0" >
-<COMPONENT type="5200" id="44" >
-<cdparam x="661" y="17" />
-<sizeparam width="278" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="59" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="Requirement" value="req00" />
-<TGConnectingPoint num="0" id="1" />
-<TGConnectingPoint num="1" id="2" />
-<TGConnectingPoint num="2" id="3" />
-<TGConnectingPoint num="3" id="4" />
-<TGConnectingPoint num="4" id="5" />
-<TGConnectingPoint num="5" id="6" />
-<TGConnectingPoint num="6" id="7" />
-<TGConnectingPoint num="7" id="8" />
-<TGConnectingPoint num="8" id="9" />
-<TGConnectingPoint num="9" id="10" />
-<TGConnectingPoint num="10" id="11" />
-<TGConnectingPoint num="11" id="12" />
-<TGConnectingPoint num="12" id="13" />
-<TGConnectingPoint num="13" id="14" />
-<TGConnectingPoint num="14" id="15" />
-<TGConnectingPoint num="15" id="16" />
-<TGConnectingPoint num="16" id="17" />
-<TGConnectingPoint num="17" id="18" />
-<TGConnectingPoint num="18" id="19" />
-<TGConnectingPoint num="19" id="20" />
-<TGConnectingPoint num="20" id="21" />
-<TGConnectingPoint num="21" id="22" />
-<TGConnectingPoint num="22" id="23" />
-<TGConnectingPoint num="23" id="24" />
-<TGConnectingPoint num="24" id="25" />
-<TGConnectingPoint num="25" id="26" />
-<TGConnectingPoint num="26" id="27" />
-<TGConnectingPoint num="27" id="28" />
-<TGConnectingPoint num="28" id="29" />
-<TGConnectingPoint num="29" id="30" />
-<TGConnectingPoint num="30" id="31" />
-<TGConnectingPoint num="31" id="32" />
-<TGConnectingPoint num="32" id="33" />
-<TGConnectingPoint num="33" id="34" />
-<TGConnectingPoint num="34" id="35" />
-<TGConnectingPoint num="35" id="36" />
-<TGConnectingPoint num="36" id="37" />
-<TGConnectingPoint num="37" id="38" />
-<TGConnectingPoint num="38" id="39" />
-<TGConnectingPoint num="39" id="40" />
-<TGConnectingPoint num="40" id="41" />
-<TGConnectingPoint num="41" id="42" />
-<TGConnectingPoint num="42" id="43" />
-<extraparam>
-<textline data="A coin not used within 50 seconds " />
-<textline data="must be ejected" />
-<kind data="Functional" />
-<criticality data="Low" />
-<reqType data="0" />
-<id data="0" />
-<satisfied data="false" />
-<verified data="false" />
-<attackTreeNode data="" />
-<violatedAction data="" />
-<referenceElements data="" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5200" id="88" >
-<cdparam x="47" y="457" />
-<sizeparam width="301" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="113" minDesiredHeight="0" />
+<COMPONENT type="5207" id="60" >
+<cdparam x="727" y="252" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="107" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="Requirement" value="Req_Availability" />
+<infoparam name="AvatarElementReference" value="CoffeeMachine" />
 <TGConnectingPoint num="0" id="45" />
 <TGConnectingPoint num="1" id="46" />
 <TGConnectingPoint num="2" id="47" />
@@ -89,41 +25,87 @@
 <TGConnectingPoint num="12" id="57" />
 <TGConnectingPoint num="13" id="58" />
 <TGConnectingPoint num="14" id="59" />
-<TGConnectingPoint num="15" id="60" />
-<TGConnectingPoint num="16" id="61" />
-<TGConnectingPoint num="17" id="62" />
-<TGConnectingPoint num="18" id="63" />
-<TGConnectingPoint num="19" id="64" />
-<TGConnectingPoint num="20" id="65" />
-<TGConnectingPoint num="21" id="66" />
-<TGConnectingPoint num="22" id="67" />
-<TGConnectingPoint num="23" id="68" />
-<TGConnectingPoint num="24" id="69" />
-<TGConnectingPoint num="25" id="70" />
-<TGConnectingPoint num="26" id="71" />
-<TGConnectingPoint num="27" id="72" />
-<TGConnectingPoint num="28" id="73" />
-<TGConnectingPoint num="29" id="74" />
-<TGConnectingPoint num="30" id="75" />
-<TGConnectingPoint num="31" id="76" />
-<TGConnectingPoint num="32" id="77" />
-<TGConnectingPoint num="33" id="78" />
-<TGConnectingPoint num="34" id="79" />
-<TGConnectingPoint num="35" id="80" />
-<TGConnectingPoint num="36" id="81" />
-<TGConnectingPoint num="37" id="82" />
-<TGConnectingPoint num="38" id="83" />
-<TGConnectingPoint num="39" id="84" />
-<TGConnectingPoint num="40" id="85" />
-<TGConnectingPoint num="41" id="86" />
-<TGConnectingPoint num="42" id="87" />
+</COMPONENT>
+
+<COMPONENT type="5207" id="76" >
+<cdparam x="724" y="202" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="57" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarElementReference" value="Wallet" />
+<TGConnectingPoint num="0" id="61" />
+<TGConnectingPoint num="1" id="62" />
+<TGConnectingPoint num="2" id="63" />
+<TGConnectingPoint num="3" id="64" />
+<TGConnectingPoint num="4" id="65" />
+<TGConnectingPoint num="5" id="66" />
+<TGConnectingPoint num="6" id="67" />
+<TGConnectingPoint num="7" id="68" />
+<TGConnectingPoint num="8" id="69" />
+<TGConnectingPoint num="9" id="70" />
+<TGConnectingPoint num="10" id="71" />
+<TGConnectingPoint num="11" id="72" />
+<TGConnectingPoint num="12" id="73" />
+<TGConnectingPoint num="13" id="74" />
+<TGConnectingPoint num="14" id="75" />
+</COMPONENT>
+
+<COMPONENT type="5200" id="120" >
+<cdparam x="660" y="10" />
+<sizeparam width="278" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="59" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="req00" />
+<TGConnectingPoint num="0" id="77" />
+<TGConnectingPoint num="1" id="78" />
+<TGConnectingPoint num="2" id="79" />
+<TGConnectingPoint num="3" id="80" />
+<TGConnectingPoint num="4" id="81" />
+<TGConnectingPoint num="5" id="82" />
+<TGConnectingPoint num="6" id="83" />
+<TGConnectingPoint num="7" id="84" />
+<TGConnectingPoint num="8" id="85" />
+<TGConnectingPoint num="9" id="86" />
+<TGConnectingPoint num="10" id="87" />
+<TGConnectingPoint num="11" id="88" />
+<TGConnectingPoint num="12" id="89" />
+<TGConnectingPoint num="13" id="90" />
+<TGConnectingPoint num="14" id="91" />
+<TGConnectingPoint num="15" id="92" />
+<TGConnectingPoint num="16" id="93" />
+<TGConnectingPoint num="17" id="94" />
+<TGConnectingPoint num="18" id="95" />
+<TGConnectingPoint num="19" id="96" />
+<TGConnectingPoint num="20" id="97" />
+<TGConnectingPoint num="21" id="98" />
+<TGConnectingPoint num="22" id="99" />
+<TGConnectingPoint num="23" id="100" />
+<TGConnectingPoint num="24" id="101" />
+<TGConnectingPoint num="25" id="102" />
+<TGConnectingPoint num="26" id="103" />
+<TGConnectingPoint num="27" id="104" />
+<TGConnectingPoint num="28" id="105" />
+<TGConnectingPoint num="29" id="106" />
+<TGConnectingPoint num="30" id="107" />
+<TGConnectingPoint num="31" id="108" />
+<TGConnectingPoint num="32" id="109" />
+<TGConnectingPoint num="33" id="110" />
+<TGConnectingPoint num="34" id="111" />
+<TGConnectingPoint num="35" id="112" />
+<TGConnectingPoint num="36" id="113" />
+<TGConnectingPoint num="37" id="114" />
+<TGConnectingPoint num="38" id="115" />
+<TGConnectingPoint num="39" id="116" />
+<TGConnectingPoint num="40" id="117" />
+<TGConnectingPoint num="41" id="118" />
+<TGConnectingPoint num="42" id="119" />
 <extraparam>
-<textline data="The availability of the machine shall be" />
-<textline data="no less than 99.99%" />
+<textline data="A coin not used within 50 seconds " />
+<textline data="must be ejected" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="0" />
-<id data="0" />
+<reqType data="Requirement" color="-1773070" />
+<id data="0.1.1" />
 <satisfied data="false" />
 <verified data="false" />
 <attackTreeNode data="" />
@@ -132,121 +114,76 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5200" id="132" >
-<cdparam x="10" y="182" />
-<sizeparam width="150" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="136" minDesiredHeight="0" />
+<COMPONENT type="5200" id="164" >
+<cdparam x="46" y="491" />
+<sizeparam width="301" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="113" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="Requirement" value="Req_CoffeeMachine" />
-<TGConnectingPoint num="0" id="89" />
-<TGConnectingPoint num="1" id="90" />
-<TGConnectingPoint num="2" id="91" />
-<TGConnectingPoint num="3" id="92" />
-<TGConnectingPoint num="4" id="93" />
-<TGConnectingPoint num="5" id="94" />
-<TGConnectingPoint num="6" id="95" />
-<TGConnectingPoint num="7" id="96" />
-<TGConnectingPoint num="8" id="97" />
-<TGConnectingPoint num="9" id="98" />
-<TGConnectingPoint num="10" id="99" />
-<TGConnectingPoint num="11" id="100" />
-<TGConnectingPoint num="12" id="101" />
-<TGConnectingPoint num="13" id="102" />
-<TGConnectingPoint num="14" id="103" />
-<TGConnectingPoint num="15" id="104" />
-<TGConnectingPoint num="16" id="105" />
-<TGConnectingPoint num="17" id="106" />
-<TGConnectingPoint num="18" id="107" />
-<TGConnectingPoint num="19" id="108" />
-<TGConnectingPoint num="20" id="109" />
-<TGConnectingPoint num="21" id="110" />
-<TGConnectingPoint num="22" id="111" />
-<TGConnectingPoint num="23" id="112" />
-<TGConnectingPoint num="24" id="113" />
-<TGConnectingPoint num="25" id="114" />
-<TGConnectingPoint num="26" id="115" />
-<TGConnectingPoint num="27" id="116" />
-<TGConnectingPoint num="28" id="117" />
-<TGConnectingPoint num="29" id="118" />
-<TGConnectingPoint num="30" id="119" />
-<TGConnectingPoint num="31" id="120" />
-<TGConnectingPoint num="32" id="121" />
-<TGConnectingPoint num="33" id="122" />
-<TGConnectingPoint num="34" id="123" />
-<TGConnectingPoint num="35" id="124" />
-<TGConnectingPoint num="36" id="125" />
-<TGConnectingPoint num="37" id="126" />
-<TGConnectingPoint num="38" id="127" />
-<TGConnectingPoint num="39" id="128" />
-<TGConnectingPoint num="40" id="129" />
-<TGConnectingPoint num="41" id="130" />
-<TGConnectingPoint num="42" id="131" />
+<infoparam name="Requirement" value="Req_Availability" />
+<TGConnectingPoint num="0" id="121" />
+<TGConnectingPoint num="1" id="122" />
+<TGConnectingPoint num="2" id="123" />
+<TGConnectingPoint num="3" id="124" />
+<TGConnectingPoint num="4" id="125" />
+<TGConnectingPoint num="5" id="126" />
+<TGConnectingPoint num="6" id="127" />
+<TGConnectingPoint num="7" id="128" />
+<TGConnectingPoint num="8" id="129" />
+<TGConnectingPoint num="9" id="130" />
+<TGConnectingPoint num="10" id="131" />
+<TGConnectingPoint num="11" id="132" />
+<TGConnectingPoint num="12" id="133" />
+<TGConnectingPoint num="13" id="134" />
+<TGConnectingPoint num="14" id="135" />
+<TGConnectingPoint num="15" id="136" />
+<TGConnectingPoint num="16" id="137" />
+<TGConnectingPoint num="17" id="138" />
+<TGConnectingPoint num="18" id="139" />
+<TGConnectingPoint num="19" id="140" />
+<TGConnectingPoint num="20" id="141" />
+<TGConnectingPoint num="21" id="142" />
+<TGConnectingPoint num="22" id="143" />
+<TGConnectingPoint num="23" id="144" />
+<TGConnectingPoint num="24" id="145" />
+<TGConnectingPoint num="25" id="146" />
+<TGConnectingPoint num="26" id="147" />
+<TGConnectingPoint num="27" id="148" />
+<TGConnectingPoint num="28" id="149" />
+<TGConnectingPoint num="29" id="150" />
+<TGConnectingPoint num="30" id="151" />
+<TGConnectingPoint num="31" id="152" />
+<TGConnectingPoint num="32" id="153" />
+<TGConnectingPoint num="33" id="154" />
+<TGConnectingPoint num="34" id="155" />
+<TGConnectingPoint num="35" id="156" />
+<TGConnectingPoint num="36" id="157" />
+<TGConnectingPoint num="37" id="158" />
+<TGConnectingPoint num="38" id="159" />
+<TGConnectingPoint num="39" id="160" />
+<TGConnectingPoint num="40" id="161" />
+<TGConnectingPoint num="41" id="162" />
+<TGConnectingPoint num="42" id="163" />
 <extraparam>
-<textline data="Requirements of the coffee machine" />
+<textline data="The availability of the machine shall be" />
+<textline data="no less than 99.99%" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="0" />
-<id data="0" />
-<satisfied data="false" />
-<verified data="false" />
+<reqType data="Requirement" color="-1773070" />
+<id data="0.4" />
+<satisfied data="true" />
+<verified data="true" />
 <attackTreeNode data="" />
 <violatedAction data="" />
 <referenceElements data="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5201" id="148" >
-<cdparam x="627" y="376" />
-<sizeparam width="171" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="158" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="AvatarProperty" value="BeverageDeliverProperty" />
-<TGConnectingPoint num="0" id="133" />
-<TGConnectingPoint num="1" id="134" />
-<TGConnectingPoint num="2" id="135" />
-<TGConnectingPoint num="3" id="136" />
-<TGConnectingPoint num="4" id="137" />
-<TGConnectingPoint num="5" id="138" />
-<TGConnectingPoint num="6" id="139" />
-<TGConnectingPoint num="7" id="140" />
-<TGConnectingPoint num="8" id="141" />
-<TGConnectingPoint num="9" id="142" />
-<TGConnectingPoint num="10" id="143" />
-<TGConnectingPoint num="11" id="144" />
-<TGConnectingPoint num="12" id="145" />
-<TGConnectingPoint num="13" id="146" />
-<TGConnectingPoint num="14" id="147" />
-</COMPONENT>
-
-<COMPONENT type="5201" id="164" >
-<cdparam x="580" y="246" />
-<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="128" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="AvatarProperty" value="WalletCoinProperty" />
-<TGConnectingPoint num="0" id="149" />
-<TGConnectingPoint num="1" id="150" />
-<TGConnectingPoint num="2" id="151" />
-<TGConnectingPoint num="3" id="152" />
-<TGConnectingPoint num="4" id="153" />
-<TGConnectingPoint num="5" id="154" />
-<TGConnectingPoint num="6" id="155" />
-<TGConnectingPoint num="7" id="156" />
-<TGConnectingPoint num="8" id="157" />
-<TGConnectingPoint num="9" id="158" />
-<TGConnectingPoint num="10" id="159" />
-<TGConnectingPoint num="11" id="160" />
-<TGConnectingPoint num="12" id="161" />
-<TGConnectingPoint num="13" id="162" />
-<TGConnectingPoint num="14" id="163" />
-</COMPONENT>
-
 <COMPONENT type="5200" id="208" >
-<cdparam x="234" y="147" />
-<sizeparam width="271" height="104" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
+<cdparam x="10" y="182" />
+<sizeparam width="150" height="120" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="136" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="Requirement" value="req1" />
+<infoparam name="Requirement" value="Req_CoffeeMachine" />
 <TGConnectingPoint num="0" id="165" />
 <TGConnectingPoint num="1" id="166" />
 <TGConnectingPoint num="2" id="167" />
@@ -291,11 +228,10 @@
 <TGConnectingPoint num="41" id="206" />
 <TGConnectingPoint num="42" id="207" />
 <extraparam>
-<textline data="A wallet must never contain a " />
-<textline data="negative number of coins" />
+<textline data="Requirements of the coffee machine" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="0" />
+<reqType data="Requirement" color="-1773070" />
 <id data="0" />
 <satisfied data="false" />
 <verified data="false" />
@@ -306,11 +242,11 @@
 </COMPONENT>
 
 <COMPONENT type="5201" id="224" >
-<cdparam x="582" y="155" />
-<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="117" minDesiredHeight="0" />
+<cdparam x="682" y="367" />
+<sizeparam width="171" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="158" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="AvatarProperty" value="OneCoinProperty" />
+<infoparam name="AvatarProperty" value="BeverageDeliverProperty" />
 <TGConnectingPoint num="0" id="209" />
 <TGConnectingPoint num="1" id="210" />
 <TGConnectingPoint num="2" id="211" />
@@ -328,12 +264,12 @@
 <TGConnectingPoint num="14" id="223" />
 </COMPONENT>
 
-<COMPONENT type="5200" id="268" >
-<cdparam x="192" y="16" />
-<sizeparam width="304" height="110" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
+<COMPONENT type="5201" id="240" >
+<cdparam x="728" y="304" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="128" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
-<infoparam name="Requirement" value="req0" />
+<infoparam name="AvatarProperty" value="WalletCoinProperty" />
 <TGConnectingPoint num="0" id="225" />
 <TGConnectingPoint num="1" id="226" />
 <TGConnectingPoint num="2" id="227" />
@@ -349,98 +285,208 @@
 <TGConnectingPoint num="12" id="237" />
 <TGConnectingPoint num="13" id="238" />
 <TGConnectingPoint num="14" id="239" />
-<TGConnectingPoint num="15" id="240" />
-<TGConnectingPoint num="16" id="241" />
-<TGConnectingPoint num="17" id="242" />
-<TGConnectingPoint num="18" id="243" />
-<TGConnectingPoint num="19" id="244" />
-<TGConnectingPoint num="20" id="245" />
-<TGConnectingPoint num="21" id="246" />
-<TGConnectingPoint num="22" id="247" />
-<TGConnectingPoint num="23" id="248" />
-<TGConnectingPoint num="24" id="249" />
-<TGConnectingPoint num="25" id="250" />
-<TGConnectingPoint num="26" id="251" />
-<TGConnectingPoint num="27" id="252" />
-<TGConnectingPoint num="28" id="253" />
-<TGConnectingPoint num="29" id="254" />
-<TGConnectingPoint num="30" id="255" />
-<TGConnectingPoint num="31" id="256" />
-<TGConnectingPoint num="32" id="257" />
-<TGConnectingPoint num="33" id="258" />
-<TGConnectingPoint num="34" id="259" />
-<TGConnectingPoint num="35" id="260" />
-<TGConnectingPoint num="36" id="261" />
-<TGConnectingPoint num="37" id="262" />
-<TGConnectingPoint num="38" id="263" />
-<TGConnectingPoint num="39" id="264" />
-<TGConnectingPoint num="40" id="265" />
-<TGConnectingPoint num="41" id="266" />
-<TGConnectingPoint num="42" id="267" />
+</COMPONENT>
+
+<COMPONENT type="5200" id="284" >
+<cdparam x="233" y="147" />
+<sizeparam width="271" height="104" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="req1" />
+<TGConnectingPoint num="0" id="241" />
+<TGConnectingPoint num="1" id="242" />
+<TGConnectingPoint num="2" id="243" />
+<TGConnectingPoint num="3" id="244" />
+<TGConnectingPoint num="4" id="245" />
+<TGConnectingPoint num="5" id="246" />
+<TGConnectingPoint num="6" id="247" />
+<TGConnectingPoint num="7" id="248" />
+<TGConnectingPoint num="8" id="249" />
+<TGConnectingPoint num="9" id="250" />
+<TGConnectingPoint num="10" id="251" />
+<TGConnectingPoint num="11" id="252" />
+<TGConnectingPoint num="12" id="253" />
+<TGConnectingPoint num="13" id="254" />
+<TGConnectingPoint num="14" id="255" />
+<TGConnectingPoint num="15" id="256" />
+<TGConnectingPoint num="16" id="257" />
+<TGConnectingPoint num="17" id="258" />
+<TGConnectingPoint num="18" id="259" />
+<TGConnectingPoint num="19" id="260" />
+<TGConnectingPoint num="20" id="261" />
+<TGConnectingPoint num="21" id="262" />
+<TGConnectingPoint num="22" id="263" />
+<TGConnectingPoint num="23" id="264" />
+<TGConnectingPoint num="24" id="265" />
+<TGConnectingPoint num="25" id="266" />
+<TGConnectingPoint num="26" id="267" />
+<TGConnectingPoint num="27" id="268" />
+<TGConnectingPoint num="28" id="269" />
+<TGConnectingPoint num="29" id="270" />
+<TGConnectingPoint num="30" id="271" />
+<TGConnectingPoint num="31" id="272" />
+<TGConnectingPoint num="32" id="273" />
+<TGConnectingPoint num="33" id="274" />
+<TGConnectingPoint num="34" id="275" />
+<TGConnectingPoint num="35" id="276" />
+<TGConnectingPoint num="36" id="277" />
+<TGConnectingPoint num="37" id="278" />
+<TGConnectingPoint num="38" id="279" />
+<TGConnectingPoint num="39" id="280" />
+<TGConnectingPoint num="40" id="281" />
+<TGConnectingPoint num="41" id="282" />
+<TGConnectingPoint num="42" id="283" />
+<extraparam>
+<textline data="A wallet must never contain a " />
+<textline data="negative number of coins" />
+<kind data="Functional" />
+<criticality data="Low" />
+<reqType data="SafetyRequirement" color="-1773070" />
+<id data="0.2" />
+<satisfied data="true" />
+<verified data="true" />
+<attackTreeNode data="" />
+<violatedAction data="" />
+<referenceElements data="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5201" id="300" >
+<cdparam x="632" y="151" />
+<sizeparam width="150" height="30" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="117" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="AvatarProperty" value="OneCoinProperty" />
+<TGConnectingPoint num="0" id="285" />
+<TGConnectingPoint num="1" id="286" />
+<TGConnectingPoint num="2" id="287" />
+<TGConnectingPoint num="3" id="288" />
+<TGConnectingPoint num="4" id="289" />
+<TGConnectingPoint num="5" id="290" />
+<TGConnectingPoint num="6" id="291" />
+<TGConnectingPoint num="7" id="292" />
+<TGConnectingPoint num="8" id="293" />
+<TGConnectingPoint num="9" id="294" />
+<TGConnectingPoint num="10" id="295" />
+<TGConnectingPoint num="11" id="296" />
+<TGConnectingPoint num="12" id="297" />
+<TGConnectingPoint num="13" id="298" />
+<TGConnectingPoint num="14" id="299" />
+</COMPONENT>
+
+<COMPONENT type="5200" id="344" >
+<cdparam x="192" y="15" />
+<sizeparam width="304" height="110" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="51" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
+<infoparam name="Requirement" value="req0" />
+<TGConnectingPoint num="0" id="301" />
+<TGConnectingPoint num="1" id="302" />
+<TGConnectingPoint num="2" id="303" />
+<TGConnectingPoint num="3" id="304" />
+<TGConnectingPoint num="4" id="305" />
+<TGConnectingPoint num="5" id="306" />
+<TGConnectingPoint num="6" id="307" />
+<TGConnectingPoint num="7" id="308" />
+<TGConnectingPoint num="8" id="309" />
+<TGConnectingPoint num="9" id="310" />
+<TGConnectingPoint num="10" id="311" />
+<TGConnectingPoint num="11" id="312" />
+<TGConnectingPoint num="12" id="313" />
+<TGConnectingPoint num="13" id="314" />
+<TGConnectingPoint num="14" id="315" />
+<TGConnectingPoint num="15" id="316" />
+<TGConnectingPoint num="16" id="317" />
+<TGConnectingPoint num="17" id="318" />
+<TGConnectingPoint num="18" id="319" />
+<TGConnectingPoint num="19" id="320" />
+<TGConnectingPoint num="20" id="321" />
+<TGConnectingPoint num="21" id="322" />
+<TGConnectingPoint num="22" id="323" />
+<TGConnectingPoint num="23" id="324" />
+<TGConnectingPoint num="24" id="325" />
+<TGConnectingPoint num="25" id="326" />
+<TGConnectingPoint num="26" id="327" />
+<TGConnectingPoint num="27" id="328" />
+<TGConnectingPoint num="28" id="329" />
+<TGConnectingPoint num="29" id="330" />
+<TGConnectingPoint num="30" id="331" />
+<TGConnectingPoint num="31" id="332" />
+<TGConnectingPoint num="32" id="333" />
+<TGConnectingPoint num="33" id="334" />
+<TGConnectingPoint num="34" id="335" />
+<TGConnectingPoint num="35" id="336" />
+<TGConnectingPoint num="36" id="337" />
+<TGConnectingPoint num="37" id="338" />
+<TGConnectingPoint num="38" id="339" />
+<TGConnectingPoint num="39" id="340" />
+<TGConnectingPoint num="40" id="341" />
+<TGConnectingPoint num="41" id="342" />
+<TGConnectingPoint num="42" id="343" />
 <extraparam>
 <textline data="The coffee machine never has one coin " />
 <textline data=" inserted more than 50 units of time" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="0" />
-<id data="123" />
+<reqType data="Requirement" color="-1773070" />
+<id data="0.1" />
 <satisfied data="false" />
-<verified data="false" />
+<verified data="true" />
 <attackTreeNode data="" />
 <violatedAction data="" />
 <referenceElements data="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5200" id="312" >
-<cdparam x="206" y="294" />
-<sizeparam width="357" height="135" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
+<COMPONENT type="5200" id="388" >
+<cdparam x="208" y="294" />
+<sizeparam width="357" height="174" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="48" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="900" />
 <infoparam name="Requirement" value="req2" />
-<TGConnectingPoint num="0" id="269" />
-<TGConnectingPoint num="1" id="270" />
-<TGConnectingPoint num="2" id="271" />
-<TGConnectingPoint num="3" id="272" />
-<TGConnectingPoint num="4" id="273" />
-<TGConnectingPoint num="5" id="274" />
-<TGConnectingPoint num="6" id="275" />
-<TGConnectingPoint num="7" id="276" />
-<TGConnectingPoint num="8" id="277" />
-<TGConnectingPoint num="9" id="278" />
-<TGConnectingPoint num="10" id="279" />
-<TGConnectingPoint num="11" id="280" />
-<TGConnectingPoint num="12" id="281" />
-<TGConnectingPoint num="13" id="282" />
-<TGConnectingPoint num="14" id="283" />
-<TGConnectingPoint num="15" id="284" />
-<TGConnectingPoint num="16" id="285" />
-<TGConnectingPoint num="17" id="286" />
-<TGConnectingPoint num="18" id="287" />
-<TGConnectingPoint num="19" id="288" />
-<TGConnectingPoint num="20" id="289" />
-<TGConnectingPoint num="21" id="290" />
-<TGConnectingPoint num="22" id="291" />
-<TGConnectingPoint num="23" id="292" />
-<TGConnectingPoint num="24" id="293" />
-<TGConnectingPoint num="25" id="294" />
-<TGConnectingPoint num="26" id="295" />
-<TGConnectingPoint num="27" id="296" />
-<TGConnectingPoint num="28" id="297" />
-<TGConnectingPoint num="29" id="298" />
-<TGConnectingPoint num="30" id="299" />
-<TGConnectingPoint num="31" id="300" />
-<TGConnectingPoint num="32" id="301" />
-<TGConnectingPoint num="33" id="302" />
-<TGConnectingPoint num="34" id="303" />
-<TGConnectingPoint num="35" id="304" />
-<TGConnectingPoint num="36" id="305" />
-<TGConnectingPoint num="37" id="306" />
-<TGConnectingPoint num="38" id="307" />
-<TGConnectingPoint num="39" id="308" />
-<TGConnectingPoint num="40" id="309" />
-<TGConnectingPoint num="41" id="310" />
-<TGConnectingPoint num="42" id="311" />
+<TGConnectingPoint num="0" id="345" />
+<TGConnectingPoint num="1" id="346" />
+<TGConnectingPoint num="2" id="347" />
+<TGConnectingPoint num="3" id="348" />
+<TGConnectingPoint num="4" id="349" />
+<TGConnectingPoint num="5" id="350" />
+<TGConnectingPoint num="6" id="351" />
+<TGConnectingPoint num="7" id="352" />
+<TGConnectingPoint num="8" id="353" />
+<TGConnectingPoint num="9" id="354" />
+<TGConnectingPoint num="10" id="355" />
+<TGConnectingPoint num="11" id="356" />
+<TGConnectingPoint num="12" id="357" />
+<TGConnectingPoint num="13" id="358" />
+<TGConnectingPoint num="14" id="359" />
+<TGConnectingPoint num="15" id="360" />
+<TGConnectingPoint num="16" id="361" />
+<TGConnectingPoint num="17" id="362" />
+<TGConnectingPoint num="18" id="363" />
+<TGConnectingPoint num="19" id="364" />
+<TGConnectingPoint num="20" id="365" />
+<TGConnectingPoint num="21" id="366" />
+<TGConnectingPoint num="22" id="367" />
+<TGConnectingPoint num="23" id="368" />
+<TGConnectingPoint num="24" id="369" />
+<TGConnectingPoint num="25" id="370" />
+<TGConnectingPoint num="26" id="371" />
+<TGConnectingPoint num="27" id="372" />
+<TGConnectingPoint num="28" id="373" />
+<TGConnectingPoint num="29" id="374" />
+<TGConnectingPoint num="30" id="375" />
+<TGConnectingPoint num="31" id="376" />
+<TGConnectingPoint num="32" id="377" />
+<TGConnectingPoint num="33" id="378" />
+<TGConnectingPoint num="34" id="379" />
+<TGConnectingPoint num="35" id="380" />
+<TGConnectingPoint num="36" id="381" />
+<TGConnectingPoint num="37" id="382" />
+<TGConnectingPoint num="38" id="383" />
+<TGConnectingPoint num="39" id="384" />
+<TGConnectingPoint num="40" id="385" />
+<TGConnectingPoint num="41" id="386" />
+<TGConnectingPoint num="42" id="387" />
 <extraparam>
 <textline data="When the application starts, if the wallet contains " />
 <textline data="at least 2 coins, then a beverage may be delivered. " />
@@ -449,123 +495,142 @@
 <textline data="machine." />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="0" />
-<id data="0" />
-<satisfied data="false" />
-<verified data="false" />
+<reqType data="SecurityRequirement" color="-1773070" />
+<id data="0.3" />
+<satisfied data="true" />
+<verified data="true" />
 <attackTreeNode data="" />
 <violatedAction data="" />
-<referenceElements data="" />
+<referenceElements data="RefAttack" />
+<extraAttribute id="Hypothèse" value="le système ..." />
 </extraparam>
 </COMPONENT>
 
-<CONNECTOR type="5202" id="314" >
-<cdparam x="659" y="79" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Requirement to Requirement" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="313" />
-<P1  x="661" y="47" id="1" />
-<P2  x="496" y="43" id="228" />
+<CONNECTOR type="5205" id="410" >
+<cdparam x="661" y="76" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;composition&gt;&gt;" />
+<TGConnectingPoint num="0" id="409" />
+<P1  x="660" y="70" id="78" />
+<P2  x="496" y="70" id="305" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5205" id="316" >
+<CONNECTOR type="5208" id="412" >
+<cdparam x="749" y="267" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;satisfy&gt;&gt;" />
+<TGConnectingPoint num="0" id="411" />
+<P1  x="727" y="267" id="46" />
+<P2  x="504" y="199" id="273" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5208" id="414" >
+<cdparam x="783" y="223" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;satisfy&gt;&gt;" />
+<TGConnectingPoint num="0" id="413" />
+<P1  x="724" y="224" id="63" />
+<P2  x="504" y="173" id="272" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5205" id="416" >
 <cdparam x="124" y="457" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
-<TGConnectingPoint num="0" id="315" />
-<P1  x="122" y="457" id="51" />
-<P2  x="122" y="302" id="100" />
+<TGConnectingPoint num="0" id="415" />
+<P1  x="121" y="491" id="127" />
+<P2  x="122" y="302" id="176" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5205" id="318" >
+<CONNECTOR type="5205" id="418" >
 <cdparam x="244" y="315" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
-<TGConnectingPoint num="0" id="317" />
-<P1  x="206" y="327" id="269" />
-<P2  x="160" y="272" id="94" />
+<TGConnectingPoint num="0" id="417" />
+<P1  x="208" y="337" id="345" />
+<P2  x="160" y="272" id="170" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5205" id="320" >
+<CONNECTOR type="5205" id="420" >
 <cdparam x="249" y="199" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
-<TGConnectingPoint num="0" id="319" />
-<P1  x="234" y="199" id="166" />
-<P2  x="160" y="212" id="92" />
+<TGConnectingPoint num="0" id="419" />
+<P1  x="233" y="199" id="242" />
+<P2  x="160" y="212" id="168" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5205" id="322" >
+<CONNECTOR type="5205" id="422" >
 <cdparam x="237" y="98" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Requirement to Requirement" value="&lt;&lt;composition&gt;&gt;" />
-<TGConnectingPoint num="0" id="321" />
-<P1  x="192" y="98" id="227" />
-<P2  x="122" y="182" id="97" />
+<TGConnectingPoint num="0" id="421" />
+<P1  x="192" y="97" id="303" />
+<P2  x="122" y="182" id="173" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5203" id="324" >
+<CONNECTOR type="5203" id="424" >
 <cdparam x="538" y="537" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from AvatarProperty to Requirement" value="&lt;&lt;verify&gt;&gt;" />
-<TGConnectingPoint num="0" id="323" />
-<P1  x="627" y="391" id="134" />
-<P2  x="563" y="361" id="285" />
+<TGConnectingPoint num="0" id="423" />
+<P1  x="682" y="382" id="210" />
+<P2  x="565" y="381" id="361" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5203" id="326" >
+<CONNECTOR type="5203" id="426" >
 <cdparam x="545" y="329" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from AvatarProperty to Requirement" value="&lt;&lt;verify&gt;&gt;" />
-<TGConnectingPoint num="0" id="325" />
-<P1  x="580" y="261" id="150" />
-<P2  x="505" y="199" id="181" />
+<TGConnectingPoint num="0" id="425" />
+<P1  x="728" y="319" id="226" />
+<P2  x="504" y="199" id="257" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5203" id="328" >
+<CONNECTOR type="5203" id="428" >
 <cdparam x="563" y="148" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from AvatarProperty to Requirement" value="&lt;&lt;verify&gt;&gt;" />
-<TGConnectingPoint num="0" id="327" />
-<P1  x="582" y="170" id="210" />
-<P2  x="496" y="98" id="242" />
+<TGConnectingPoint num="0" id="427" />
+<P1  x="632" y="166" id="286" />
+<P2  x="496" y="97" id="318" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </AvatarRDPanel>
 
 <AvatarPDPanel name="AVATAR PD" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0000000000000004" >
-<CONNECTOR type="5312" id="330" >
+<CONNECTOR type="5312" id="430" >
 <cdparam x="582" y="248" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="329" />
-<P1  x="503" y="258" id="455" />
-<P2  x="507" y="334" id="343" />
+<TGConnectingPoint num="0" id="429" />
+<P1  x="502" y="258" id="555" />
+<P2  x="502" y="334" id="443" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5310" id="336" >
+<CONNECTOR type="5310" id="436" >
 <cdparam x="247" y="616" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
-<TGConnectingPoint num="0" id="333" />
-<TGConnectingPoint num="1" id="334" />
-<TGConnectingPoint num="2" id="335" />
-<P1  x="492" y="126" id="418" />
-<P2  x="492" y="209" id="459" />
+<TGConnectingPoint num="0" id="433" />
+<TGConnectingPoint num="1" id="434" />
+<TGConnectingPoint num="2" id="435" />
+<P1  x="492" y="126" id="518" />
+<P2  x="492" y="209" id="559" />
 <Point x="467" y="147" />
 <Point x="467" y="192" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="331" >
-<father id="336" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="431" >
+<father id="436" num="0" />
 <cdparam x="467" y="147" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="332" >
-<father id="336" num="1" />
+<SUBCOMPONENT type="-1" id="432" >
+<father id="436" num="1" />
 <cdparam x="467" y="192" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -573,229 +638,229 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="5311" id="338" >
+<CONNECTOR type="5311" id="438" >
 <cdparam x="280" y="200" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
-<TGConnectingPoint num="0" id="337" />
-<P1  x="318" y="261" id="381" />
-<P2  x="361" y="261" id="356" />
+<TGConnectingPoint num="0" id="437" />
+<P1  x="302" y="261" id="481" />
+<P2  x="361" y="261" id="456" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5312" id="340" >
+<CONNECTOR type="5312" id="440" >
 <cdparam x="473" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="339" />
-<P1  x="390" y="286" id="354" />
-<P2  x="394" y="331" id="348" />
+<TGConnectingPoint num="0" id="439" />
+<P1  x="390" y="286" id="454" />
+<P2  x="390" y="331" id="448" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5311" id="342" >
+<CONNECTOR type="5311" id="442" >
 <cdparam x="276" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
-<TGConnectingPoint num="0" id="341" />
-<P1  x="318" y="211" id="368" />
-<P2  x="361" y="211" id="355" />
+<TGConnectingPoint num="0" id="441" />
+<P1  x="305" y="211" id="468" />
+<P2  x="361" y="211" id="455" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<COMPONENT type="5308" id="347" >
+<COMPONENT type="5308" id="447" >
 <cdparam x="446" y="334" />
-<sizeparam width="122" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="112" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" />
 <infoparam name="TGComponent" value="WalletCoinProperty" />
-<TGConnectingPoint num="0" id="343" />
-<TGConnectingPoint num="1" id="344" />
-<TGConnectingPoint num="2" id="345" />
-<TGConnectingPoint num="3" id="346" />
+<TGConnectingPoint num="0" id="443" />
+<TGConnectingPoint num="1" id="444" />
+<TGConnectingPoint num="2" id="445" />
+<TGConnectingPoint num="3" id="446" />
 <extraparam>
 <liveness data="0" />
 <not data="false" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5308" id="352" >
+<COMPONENT type="5308" id="452" >
 <cdparam x="340" y="331" />
-<sizeparam width="108" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" />
 <infoparam name="TGComponent" value="oneCoinProperty" />
-<TGConnectingPoint num="0" id="348" />
-<TGConnectingPoint num="1" id="349" />
-<TGConnectingPoint num="2" id="350" />
-<TGConnectingPoint num="3" id="351" />
+<TGConnectingPoint num="0" id="448" />
+<TGConnectingPoint num="1" id="449" />
+<TGConnectingPoint num="2" id="450" />
+<TGConnectingPoint num="3" id="451" />
 <extraparam>
 <liveness data="1" />
 <not data="true" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5302" id="365" >
+<COMPONENT type="5302" id="465" >
 <cdparam x="361" y="187" />
 <sizeparam width="59" height="99" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" />
 <infoparam name="TGComponent" value="&gt;50" />
-<TGConnectingPoint num="0" id="353" />
-<TGConnectingPoint num="1" id="354" />
-<TGConnectingPoint num="2" id="355" />
-<TGConnectingPoint num="3" id="356" />
-<TGConnectingPoint num="4" id="357" />
-<TGConnectingPoint num="5" id="358" />
-<TGConnectingPoint num="6" id="359" />
-<TGConnectingPoint num="7" id="360" />
-<TGConnectingPoint num="8" id="361" />
-<TGConnectingPoint num="9" id="362" />
-<TGConnectingPoint num="10" id="363" />
-<TGConnectingPoint num="11" id="364" />
+<TGConnectingPoint num="0" id="453" />
+<TGConnectingPoint num="1" id="454" />
+<TGConnectingPoint num="2" id="455" />
+<TGConnectingPoint num="3" id="456" />
+<TGConnectingPoint num="4" id="457" />
+<TGConnectingPoint num="5" id="458" />
+<TGConnectingPoint num="6" id="459" />
+<TGConnectingPoint num="7" id="460" />
+<TGConnectingPoint num="8" id="461" />
+<TGConnectingPoint num="9" id="462" />
+<TGConnectingPoint num="10" id="463" />
+<TGConnectingPoint num="11" id="464" />
 </COMPONENT>
 
-<COMPONENT type="5300" id="416" >
+<COMPONENT type="5300" id="516" >
 <cdparam x="150" y="142" />
 <sizeparam width="168" height="154" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" />
 <infoparam name="Block0" value="CoffeeMachine" />
-<TGConnectingPoint num="0" id="392" />
-<TGConnectingPoint num="1" id="393" />
-<TGConnectingPoint num="2" id="394" />
-<TGConnectingPoint num="3" id="395" />
-<TGConnectingPoint num="4" id="396" />
-<TGConnectingPoint num="5" id="397" />
-<TGConnectingPoint num="6" id="398" />
-<TGConnectingPoint num="7" id="399" />
-<TGConnectingPoint num="8" id="400" />
-<TGConnectingPoint num="9" id="401" />
-<TGConnectingPoint num="10" id="402" />
-<TGConnectingPoint num="11" id="403" />
-<TGConnectingPoint num="12" id="404" />
-<TGConnectingPoint num="13" id="405" />
-<TGConnectingPoint num="14" id="406" />
-<TGConnectingPoint num="15" id="407" />
-<TGConnectingPoint num="16" id="408" />
-<TGConnectingPoint num="17" id="409" />
-<TGConnectingPoint num="18" id="410" />
-<TGConnectingPoint num="19" id="411" />
-<TGConnectingPoint num="20" id="412" />
-<TGConnectingPoint num="21" id="413" />
-<TGConnectingPoint num="22" id="414" />
-<TGConnectingPoint num="23" id="415" />
+<TGConnectingPoint num="0" id="492" />
+<TGConnectingPoint num="1" id="493" />
+<TGConnectingPoint num="2" id="494" />
+<TGConnectingPoint num="3" id="495" />
+<TGConnectingPoint num="4" id="496" />
+<TGConnectingPoint num="5" id="497" />
+<TGConnectingPoint num="6" id="498" />
+<TGConnectingPoint num="7" id="499" />
+<TGConnectingPoint num="8" id="500" />
+<TGConnectingPoint num="9" id="501" />
+<TGConnectingPoint num="10" id="502" />
+<TGConnectingPoint num="11" id="503" />
+<TGConnectingPoint num="12" id="504" />
+<TGConnectingPoint num="13" id="505" />
+<TGConnectingPoint num="14" id="506" />
+<TGConnectingPoint num="15" id="507" />
+<TGConnectingPoint num="16" id="508" />
+<TGConnectingPoint num="17" id="509" />
+<TGConnectingPoint num="18" id="510" />
+<TGConnectingPoint num="19" id="511" />
+<TGConnectingPoint num="20" id="512" />
+<TGConnectingPoint num="21" id="513" />
+<TGConnectingPoint num="22" id="514" />
+<TGConnectingPoint num="23" id="515" />
 </COMPONENT>
-<SUBCOMPONENT type="5304" id="378" >
-<father id="416" num="0" />
+<SUBCOMPONENT type="5304" id="478" >
+<father id="516" num="0" />
 <cdparam x="166" y="191" />
-<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" />
+<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" />
 <infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
-<TGConnectingPoint num="0" id="366" />
-<TGConnectingPoint num="1" id="367" />
-<TGConnectingPoint num="2" id="368" />
-<TGConnectingPoint num="3" id="369" />
-<TGConnectingPoint num="4" id="370" />
-<TGConnectingPoint num="5" id="371" />
-<TGConnectingPoint num="6" id="372" />
-<TGConnectingPoint num="7" id="373" />
-<TGConnectingPoint num="8" id="374" />
-<TGConnectingPoint num="9" id="375" />
-<TGConnectingPoint num="10" id="376" />
-<TGConnectingPoint num="11" id="377" />
+<TGConnectingPoint num="0" id="466" />
+<TGConnectingPoint num="1" id="467" />
+<TGConnectingPoint num="2" id="468" />
+<TGConnectingPoint num="3" id="469" />
+<TGConnectingPoint num="4" id="470" />
+<TGConnectingPoint num="5" id="471" />
+<TGConnectingPoint num="6" id="472" />
+<TGConnectingPoint num="7" id="473" />
+<TGConnectingPoint num="8" id="474" />
+<TGConnectingPoint num="9" id="475" />
+<TGConnectingPoint num="10" id="476" />
+<TGConnectingPoint num="11" id="477" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5304" id="391" >
-<father id="416" num="1" />
+<SUBCOMPONENT type="5304" id="491" >
+<father id="516" num="1" />
 <cdparam x="154" y="241" />
-<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" />
+<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" />
 <infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
-<TGConnectingPoint num="0" id="379" />
-<TGConnectingPoint num="1" id="380" />
-<TGConnectingPoint num="2" id="381" />
-<TGConnectingPoint num="3" id="382" />
-<TGConnectingPoint num="4" id="383" />
-<TGConnectingPoint num="5" id="384" />
-<TGConnectingPoint num="6" id="385" />
-<TGConnectingPoint num="7" id="386" />
-<TGConnectingPoint num="8" id="387" />
-<TGConnectingPoint num="9" id="388" />
-<TGConnectingPoint num="10" id="389" />
-<TGConnectingPoint num="11" id="390" />
+<TGConnectingPoint num="0" id="479" />
+<TGConnectingPoint num="1" id="480" />
+<TGConnectingPoint num="2" id="481" />
+<TGConnectingPoint num="3" id="482" />
+<TGConnectingPoint num="4" id="483" />
+<TGConnectingPoint num="5" id="484" />
+<TGConnectingPoint num="6" id="485" />
+<TGConnectingPoint num="7" id="486" />
+<TGConnectingPoint num="8" id="487" />
+<TGConnectingPoint num="9" id="488" />
+<TGConnectingPoint num="10" id="489" />
+<TGConnectingPoint num="11" id="490" />
 </SUBCOMPONENT>
 
-<COMPONENT type="5300" id="454" >
+<COMPONENT type="5300" id="554" >
 <cdparam x="459" y="61" />
 <sizeparam width="150" height="116" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" />
 <infoparam name="Block0" value="Wallet" />
-<TGConnectingPoint num="0" id="430" />
-<TGConnectingPoint num="1" id="431" />
-<TGConnectingPoint num="2" id="432" />
-<TGConnectingPoint num="3" id="433" />
-<TGConnectingPoint num="4" id="434" />
-<TGConnectingPoint num="5" id="435" />
-<TGConnectingPoint num="6" id="436" />
-<TGConnectingPoint num="7" id="437" />
-<TGConnectingPoint num="8" id="438" />
-<TGConnectingPoint num="9" id="439" />
-<TGConnectingPoint num="10" id="440" />
-<TGConnectingPoint num="11" id="441" />
-<TGConnectingPoint num="12" id="442" />
-<TGConnectingPoint num="13" id="443" />
-<TGConnectingPoint num="14" id="444" />
-<TGConnectingPoint num="15" id="445" />
-<TGConnectingPoint num="16" id="446" />
-<TGConnectingPoint num="17" id="447" />
-<TGConnectingPoint num="18" id="448" />
-<TGConnectingPoint num="19" id="449" />
-<TGConnectingPoint num="20" id="450" />
-<TGConnectingPoint num="21" id="451" />
-<TGConnectingPoint num="22" id="452" />
-<TGConnectingPoint num="23" id="453" />
+<TGConnectingPoint num="0" id="530" />
+<TGConnectingPoint num="1" id="531" />
+<TGConnectingPoint num="2" id="532" />
+<TGConnectingPoint num="3" id="533" />
+<TGConnectingPoint num="4" id="534" />
+<TGConnectingPoint num="5" id="535" />
+<TGConnectingPoint num="6" id="536" />
+<TGConnectingPoint num="7" id="537" />
+<TGConnectingPoint num="8" id="538" />
+<TGConnectingPoint num="9" id="539" />
+<TGConnectingPoint num="10" id="540" />
+<TGConnectingPoint num="11" id="541" />
+<TGConnectingPoint num="12" id="542" />
+<TGConnectingPoint num="13" id="543" />
+<TGConnectingPoint num="14" id="544" />
+<TGConnectingPoint num="15" id="545" />
+<TGConnectingPoint num="16" id="546" />
+<TGConnectingPoint num="17" id="547" />
+<TGConnectingPoint num="18" id="548" />
+<TGConnectingPoint num="19" id="549" />
+<TGConnectingPoint num="20" id="550" />
+<TGConnectingPoint num="21" id="551" />
+<TGConnectingPoint num="22" id="552" />
+<TGConnectingPoint num="23" id="553" />
 </COMPONENT>
-<SUBCOMPONENT type="5303" id="429" >
-<father id="454" num="0" />
+<SUBCOMPONENT type="5303" id="529" >
+<father id="554" num="0" />
 <cdparam x="492" y="102" />
 <sizeparam width="100" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="50" minY="0" maxY="67" />
 <infoparam name="TGComponent" value="nbOfCoins" />
-<TGConnectingPoint num="0" id="417" />
-<TGConnectingPoint num="1" id="418" />
-<TGConnectingPoint num="2" id="419" />
-<TGConnectingPoint num="3" id="420" />
-<TGConnectingPoint num="4" id="421" />
-<TGConnectingPoint num="5" id="422" />
-<TGConnectingPoint num="6" id="423" />
-<TGConnectingPoint num="7" id="424" />
-<TGConnectingPoint num="8" id="425" />
-<TGConnectingPoint num="9" id="426" />
-<TGConnectingPoint num="10" id="427" />
-<TGConnectingPoint num="11" id="428" />
+<TGConnectingPoint num="0" id="517" />
+<TGConnectingPoint num="1" id="518" />
+<TGConnectingPoint num="2" id="519" />
+<TGConnectingPoint num="3" id="520" />
+<TGConnectingPoint num="4" id="521" />
+<TGConnectingPoint num="5" id="522" />
+<TGConnectingPoint num="6" id="523" />
+<TGConnectingPoint num="7" id="524" />
+<TGConnectingPoint num="8" id="525" />
+<TGConnectingPoint num="9" id="526" />
+<TGConnectingPoint num="10" id="527" />
+<TGConnectingPoint num="11" id="528" />
 <extraparam>
 <Toggle value="" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5306" id="466" >
+<COMPONENT type="5306" id="566" >
 <cdparam x="467" y="209" />
-<sizeparam width="103" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="100" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" />
 <infoparam name="TGComponent" value="nbOfCoins &gt;= 0" />
-<TGConnectingPoint num="0" id="455" />
-<TGConnectingPoint num="1" id="456" />
-<TGConnectingPoint num="2" id="457" />
-<TGConnectingPoint num="3" id="458" />
-<TGConnectingPoint num="4" id="459" />
-<TGConnectingPoint num="5" id="460" />
-<TGConnectingPoint num="6" id="461" />
-<TGConnectingPoint num="7" id="462" />
-<TGConnectingPoint num="8" id="463" />
-<TGConnectingPoint num="9" id="464" />
-<TGConnectingPoint num="10" id="465" />
+<TGConnectingPoint num="0" id="555" />
+<TGConnectingPoint num="1" id="556" />
+<TGConnectingPoint num="2" id="557" />
+<TGConnectingPoint num="3" id="558" />
+<TGConnectingPoint num="4" id="559" />
+<TGConnectingPoint num="5" id="560" />
+<TGConnectingPoint num="6" id="561" />
+<TGConnectingPoint num="7" id="562" />
+<TGConnectingPoint num="8" id="563" />
+<TGConnectingPoint num="9" id="564" />
+<TGConnectingPoint num="10" id="565" />
 <extraparam>
 <Toggle value="" />
 </extraparam>
@@ -805,55 +870,55 @@
 </AvatarPDPanel>
 
 <AvatarPDPanel name="AVATAR PD" minX="10" maxX="1400" minY="10" maxY="1400" zoom="1.0" >
-<CONNECTOR type="5312" id="468" >
+<CONNECTOR type="5312" id="568" >
 <cdparam x="580" y="547" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="467" />
-<P1  x="637" y="538" id="649" />
-<P2  x="638" y="563" id="500" />
+<TGConnectingPoint num="0" id="567" />
+<P1  x="637" y="538" id="749" />
+<P2  x="632" y="563" id="600" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5312" id="470" >
+<CONNECTOR type="5312" id="570" >
 <cdparam x="506" y="493" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="469" />
-<P1  x="577" y="471" id="654" />
-<P2  x="617" y="498" id="642" />
+<TGConnectingPoint num="0" id="569" />
+<P1  x="577" y="471" id="754" />
+<P2  x="617" y="498" id="742" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5312" id="472" >
+<CONNECTOR type="5312" id="572" >
 <cdparam x="694" y="460" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="471" />
-<P1  x="694" y="472" id="496" />
-<P2  x="657" y="498" id="644" />
+<TGConnectingPoint num="0" id="571" />
+<P1  x="694" y="472" id="596" />
+<P2  x="657" y="498" id="744" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5311" id="478" >
+<CONNECTOR type="5311" id="578" >
 <cdparam x="581" y="133" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
-<TGConnectingPoint num="0" id="475" />
-<TGConnectingPoint num="1" id="476" />
-<TGConnectingPoint num="2" id="477" />
-<P1  x="581" y="154" id="551" />
-<P2  x="546" y="305" id="621" />
+<TGConnectingPoint num="0" id="575" />
+<TGConnectingPoint num="1" id="576" />
+<TGConnectingPoint num="2" id="577" />
+<P1  x="581" y="154" id="651" />
+<P2  x="546" y="305" id="721" />
 <Point x="518" y="154" />
 <Point x="518" y="305" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="473" >
-<father id="478" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="573" >
+<father id="578" num="0" />
 <cdparam x="518" y="154" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="474" >
-<father id="478" num="1" />
+<SUBCOMPONENT type="-1" id="574" >
+<father id="578" num="1" />
 <cdparam x="518" y="305" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -861,18 +926,18 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="5311" id="482" >
+<CONNECTOR type="5311" id="582" >
 <cdparam x="631" y="143" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
-<TGConnectingPoint num="0" id="480" />
-<TGConnectingPoint num="1" id="481" />
-<P1  x="631" y="164" id="546" />
-<P2  x="667" y="310" id="608" />
+<TGConnectingPoint num="0" id="580" />
+<TGConnectingPoint num="1" id="581" />
+<P1  x="631" y="164" id="646" />
+<P2  x="667" y="310" id="708" />
 <Point x="631" y="310" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="479" >
-<father id="482" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="579" >
+<father id="582" num="0" />
 <cdparam x="631" y="310" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -880,27 +945,27 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="5312" id="484" >
+<CONNECTOR type="5312" id="584" >
 <cdparam x="695" y="396" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="483" />
-<P1  x="696" y="385" id="607" />
-<P2  x="694" y="417" id="495" />
+<TGConnectingPoint num="0" id="583" />
+<P1  x="696" y="385" id="707" />
+<P2  x="694" y="417" id="595" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5310" id="488" >
+<CONNECTOR type="5310" id="588" >
 <cdparam x="877" y="168" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
-<TGConnectingPoint num="0" id="486" />
-<TGConnectingPoint num="1" id="487" />
-<P1  x="721" y="158" id="557" />
-<P2  x="700" y="204" id="598" />
+<TGConnectingPoint num="0" id="586" />
+<TGConnectingPoint num="1" id="587" />
+<P1  x="721" y="158" id="657" />
+<P2  x="700" y="204" id="698" />
 <Point x="700" y="158" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="485" >
-<father id="488" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="585" >
+<father id="588" num="0" />
 <cdparam x="700" y="158" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -908,292 +973,292 @@
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="5312" id="490" >
+<CONNECTOR type="5312" id="590" >
 <cdparam x="915" y="307" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="489" />
-<P1  x="710" y="254" id="594" />
-<P2  x="711" y="285" id="606" />
+<TGConnectingPoint num="0" id="589" />
+<P1  x="710" y="254" id="694" />
+<P2  x="711" y="285" id="706" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5312" id="492" >
+<CONNECTOR type="5312" id="592" >
 <cdparam x="993" y="581" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="reg" />
-<TGConnectingPoint num="0" id="491" />
-<P1  x="576" y="385" id="620" />
-<P2  x="577" y="416" id="653" />
+<TGConnectingPoint num="0" id="591" />
+<P1  x="576" y="385" id="720" />
+<P2  x="577" y="416" id="753" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="5311" id="494" >
+<CONNECTOR type="5311" id="594" >
 <cdparam x="426" y="264" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
-<TGConnectingPoint num="0" id="493" />
-<P1  x="492" y="345" id="507" />
-<P2  x="546" y="345" id="625" />
+<TGConnectingPoint num="0" id="593" />
+<P1  x="491" y="345" id="607" />
+<P2  x="546" y="345" id="725" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<COMPONENT type="5308" id="499" >
+<COMPONENT type="5308" id="599" >
 <cdparam x="644" y="417" />
 <sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="TGComponent" value="prop01" />
-<TGConnectingPoint num="0" id="495" />
-<TGConnectingPoint num="1" id="496" />
-<TGConnectingPoint num="2" id="497" />
-<TGConnectingPoint num="3" id="498" />
+<TGConnectingPoint num="0" id="595" />
+<TGConnectingPoint num="1" id="596" />
+<TGConnectingPoint num="2" id="597" />
+<TGConnectingPoint num="3" id="598" />
 <extraparam>
 <liveness data="1" />
 <not data="false" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5308" id="504" >
+<COMPONENT type="5308" id="604" >
 <cdparam x="559" y="563" />
-<sizeparam width="158" height="54" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="146" height="54" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="TGComponent" value="BeverageDeliverProperty" />
-<TGConnectingPoint num="0" id="500" />
-<TGConnectingPoint num="1" id="501" />
-<TGConnectingPoint num="2" id="502" />
-<TGConnectingPoint num="3" id="503" />
+<TGConnectingPoint num="0" id="600" />
+<TGConnectingPoint num="1" id="601" />
+<TGConnectingPoint num="2" id="602" />
+<TGConnectingPoint num="3" id="603" />
 <extraparam>
 <liveness data="0" />
 <not data="false" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5300" id="542" >
+<COMPONENT type="5300" id="642" >
 <cdparam x="372" y="227" />
 <sizeparam width="132" height="153" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="Block0" value="CoffeeMachine" />
-<TGConnectingPoint num="0" id="518" />
-<TGConnectingPoint num="1" id="519" />
-<TGConnectingPoint num="2" id="520" />
-<TGConnectingPoint num="3" id="521" />
-<TGConnectingPoint num="4" id="522" />
-<TGConnectingPoint num="5" id="523" />
-<TGConnectingPoint num="6" id="524" />
-<TGConnectingPoint num="7" id="525" />
-<TGConnectingPoint num="8" id="526" />
-<TGConnectingPoint num="9" id="527" />
-<TGConnectingPoint num="10" id="528" />
-<TGConnectingPoint num="11" id="529" />
-<TGConnectingPoint num="12" id="530" />
-<TGConnectingPoint num="13" id="531" />
-<TGConnectingPoint num="14" id="532" />
-<TGConnectingPoint num="15" id="533" />
-<TGConnectingPoint num="16" id="534" />
-<TGConnectingPoint num="17" id="535" />
-<TGConnectingPoint num="18" id="536" />
-<TGConnectingPoint num="19" id="537" />
-<TGConnectingPoint num="20" id="538" />
-<TGConnectingPoint num="21" id="539" />
-<TGConnectingPoint num="22" id="540" />
-<TGConnectingPoint num="23" id="541" />
+<TGConnectingPoint num="0" id="618" />
+<TGConnectingPoint num="1" id="619" />
+<TGConnectingPoint num="2" id="620" />
+<TGConnectingPoint num="3" id="621" />
+<TGConnectingPoint num="4" id="622" />
+<TGConnectingPoint num="5" id="623" />
+<TGConnectingPoint num="6" id="624" />
+<TGConnectingPoint num="7" id="625" />
+<TGConnectingPoint num="8" id="626" />
+<TGConnectingPoint num="9" id="627" />
+<TGConnectingPoint num="10" id="628" />
+<TGConnectingPoint num="11" id="629" />
+<TGConnectingPoint num="12" id="630" />
+<TGConnectingPoint num="13" id="631" />
+<TGConnectingPoint num="14" id="632" />
+<TGConnectingPoint num="15" id="633" />
+<TGConnectingPoint num="16" id="634" />
+<TGConnectingPoint num="17" id="635" />
+<TGConnectingPoint num="18" id="636" />
+<TGConnectingPoint num="19" id="637" />
+<TGConnectingPoint num="20" id="638" />
+<TGConnectingPoint num="21" id="639" />
+<TGConnectingPoint num="22" id="640" />
+<TGConnectingPoint num="23" id="641" />
 </COMPONENT>
-<SUBCOMPONENT type="5304" id="517" >
-<father id="542" num="0" />
+<SUBCOMPONENT type="5304" id="617" >
+<father id="642" num="0" />
 <cdparam x="391" y="326" />
-<sizeparam width="101" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="31" minY="0" maxY="114" />
+<cdrectangleparam minX="0" maxX="32" minY="0" maxY="114" />
 <infoparam name="TGComponent" value="beverageReady" />
-<TGConnectingPoint num="0" id="505" />
-<TGConnectingPoint num="1" id="506" />
-<TGConnectingPoint num="2" id="507" />
-<TGConnectingPoint num="3" id="508" />
-<TGConnectingPoint num="4" id="509" />
-<TGConnectingPoint num="5" id="510" />
-<TGConnectingPoint num="6" id="511" />
-<TGConnectingPoint num="7" id="512" />
-<TGConnectingPoint num="8" id="513" />
-<TGConnectingPoint num="9" id="514" />
-<TGConnectingPoint num="10" id="515" />
-<TGConnectingPoint num="11" id="516" />
+<TGConnectingPoint num="0" id="605" />
+<TGConnectingPoint num="1" id="606" />
+<TGConnectingPoint num="2" id="607" />
+<TGConnectingPoint num="3" id="608" />
+<TGConnectingPoint num="4" id="609" />
+<TGConnectingPoint num="5" id="610" />
+<TGConnectingPoint num="6" id="611" />
+<TGConnectingPoint num="7" id="612" />
+<TGConnectingPoint num="8" id="613" />
+<TGConnectingPoint num="9" id="614" />
+<TGConnectingPoint num="10" id="615" />
+<TGConnectingPoint num="11" id="616" />
 </SUBCOMPONENT>
 
-<COMPONENT type="5300" id="593" >
+<COMPONENT type="5300" id="693" >
 <cdparam x="563" y="78" />
 <sizeparam width="268" height="115" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="Block0" value="Wallet" />
-<TGConnectingPoint num="0" id="569" />
-<TGConnectingPoint num="1" id="570" />
-<TGConnectingPoint num="2" id="571" />
-<TGConnectingPoint num="3" id="572" />
-<TGConnectingPoint num="4" id="573" />
-<TGConnectingPoint num="5" id="574" />
-<TGConnectingPoint num="6" id="575" />
-<TGConnectingPoint num="7" id="576" />
-<TGConnectingPoint num="8" id="577" />
-<TGConnectingPoint num="9" id="578" />
-<TGConnectingPoint num="10" id="579" />
-<TGConnectingPoint num="11" id="580" />
-<TGConnectingPoint num="12" id="581" />
-<TGConnectingPoint num="13" id="582" />
-<TGConnectingPoint num="14" id="583" />
-<TGConnectingPoint num="15" id="584" />
-<TGConnectingPoint num="16" id="585" />
-<TGConnectingPoint num="17" id="586" />
-<TGConnectingPoint num="18" id="587" />
-<TGConnectingPoint num="19" id="588" />
-<TGConnectingPoint num="20" id="589" />
-<TGConnectingPoint num="21" id="590" />
-<TGConnectingPoint num="22" id="591" />
-<TGConnectingPoint num="23" id="592" />
+<TGConnectingPoint num="0" id="669" />
+<TGConnectingPoint num="1" id="670" />
+<TGConnectingPoint num="2" id="671" />
+<TGConnectingPoint num="3" id="672" />
+<TGConnectingPoint num="4" id="673" />
+<TGConnectingPoint num="5" id="674" />
+<TGConnectingPoint num="6" id="675" />
+<TGConnectingPoint num="7" id="676" />
+<TGConnectingPoint num="8" id="677" />
+<TGConnectingPoint num="9" id="678" />
+<TGConnectingPoint num="10" id="679" />
+<TGConnectingPoint num="11" id="680" />
+<TGConnectingPoint num="12" id="681" />
+<TGConnectingPoint num="13" id="682" />
+<TGConnectingPoint num="14" id="683" />
+<TGConnectingPoint num="15" id="684" />
+<TGConnectingPoint num="16" id="685" />
+<TGConnectingPoint num="17" id="686" />
+<TGConnectingPoint num="18" id="687" />
+<TGConnectingPoint num="19" id="688" />
+<TGConnectingPoint num="20" id="689" />
+<TGConnectingPoint num="21" id="690" />
+<TGConnectingPoint num="22" id="691" />
+<TGConnectingPoint num="23" id="692" />
 </COMPONENT>
-<SUBCOMPONENT type="5304" id="555" >
-<father id="593" num="0" />
+<SUBCOMPONENT type="5304" id="655" >
+<father id="693" num="0" />
 <cdparam x="581" y="125" />
 <sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" />
 <infoparam name="TGComponent" value="Start" />
-<TGConnectingPoint num="0" id="543" />
-<TGConnectingPoint num="1" id="544" />
-<TGConnectingPoint num="2" id="545" />
-<TGConnectingPoint num="3" id="546" />
-<TGConnectingPoint num="4" id="547" />
-<TGConnectingPoint num="5" id="548" />
-<TGConnectingPoint num="6" id="549" />
-<TGConnectingPoint num="7" id="550" />
-<TGConnectingPoint num="8" id="551" />
-<TGConnectingPoint num="9" id="552" />
-<TGConnectingPoint num="10" id="553" />
-<TGConnectingPoint num="11" id="554" />
+<TGConnectingPoint num="0" id="643" />
+<TGConnectingPoint num="1" id="644" />
+<TGConnectingPoint num="2" id="645" />
+<TGConnectingPoint num="3" id="646" />
+<TGConnectingPoint num="4" id="647" />
+<TGConnectingPoint num="5" id="648" />
+<TGConnectingPoint num="6" id="649" />
+<TGConnectingPoint num="7" id="650" />
+<TGConnectingPoint num="8" id="651" />
+<TGConnectingPoint num="9" id="652" />
+<TGConnectingPoint num="10" id="653" />
+<TGConnectingPoint num="11" id="654" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5303" id="568" >
-<father id="593" num="1" />
+<SUBCOMPONENT type="5303" id="668" >
+<father id="693" num="1" />
 <cdparam x="721" y="133" />
 <sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" />
 <infoparam name="TGComponent" value="nbOfCoins" />
-<TGConnectingPoint num="0" id="556" />
-<TGConnectingPoint num="1" id="557" />
-<TGConnectingPoint num="2" id="558" />
-<TGConnectingPoint num="3" id="559" />
-<TGConnectingPoint num="4" id="560" />
-<TGConnectingPoint num="5" id="561" />
-<TGConnectingPoint num="6" id="562" />
-<TGConnectingPoint num="7" id="563" />
-<TGConnectingPoint num="8" id="564" />
-<TGConnectingPoint num="9" id="565" />
-<TGConnectingPoint num="10" id="566" />
-<TGConnectingPoint num="11" id="567" />
+<TGConnectingPoint num="0" id="656" />
+<TGConnectingPoint num="1" id="657" />
+<TGConnectingPoint num="2" id="658" />
+<TGConnectingPoint num="3" id="659" />
+<TGConnectingPoint num="4" id="660" />
+<TGConnectingPoint num="5" id="661" />
+<TGConnectingPoint num="6" id="662" />
+<TGConnectingPoint num="7" id="663" />
+<TGConnectingPoint num="8" id="664" />
+<TGConnectingPoint num="9" id="665" />
+<TGConnectingPoint num="10" id="666" />
+<TGConnectingPoint num="11" id="667" />
 <extraparam>
 <Toggle value="" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5306" id="605" >
+<COMPONENT type="5306" id="705" >
 <cdparam x="675" y="204" />
 <sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="TGComponent" value="nbOfCoins &gt; 1" />
-<TGConnectingPoint num="0" id="594" />
-<TGConnectingPoint num="1" id="595" />
-<TGConnectingPoint num="2" id="596" />
-<TGConnectingPoint num="3" id="597" />
-<TGConnectingPoint num="4" id="598" />
-<TGConnectingPoint num="5" id="599" />
-<TGConnectingPoint num="6" id="600" />
-<TGConnectingPoint num="7" id="601" />
-<TGConnectingPoint num="8" id="602" />
-<TGConnectingPoint num="9" id="603" />
-<TGConnectingPoint num="10" id="604" />
+<TGConnectingPoint num="0" id="694" />
+<TGConnectingPoint num="1" id="695" />
+<TGConnectingPoint num="2" id="696" />
+<TGConnectingPoint num="3" id="697" />
+<TGConnectingPoint num="4" id="698" />
+<TGConnectingPoint num="5" id="699" />
+<TGConnectingPoint num="6" id="700" />
+<TGConnectingPoint num="7" id="701" />
+<TGConnectingPoint num="8" id="702" />
+<TGConnectingPoint num="9" id="703" />
+<TGConnectingPoint num="10" id="704" />
 <extraparam>
 <Toggle value="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5302" id="618" >
+<COMPONENT type="5302" id="718" >
 <cdparam x="667" y="285" />
 <sizeparam width="59" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="TGComponent" value="=0" />
-<TGConnectingPoint num="0" id="606" />
-<TGConnectingPoint num="1" id="607" />
-<TGConnectingPoint num="2" id="608" />
-<TGConnectingPoint num="3" id="609" />
-<TGConnectingPoint num="4" id="610" />
-<TGConnectingPoint num="5" id="611" />
-<TGConnectingPoint num="6" id="612" />
-<TGConnectingPoint num="7" id="613" />
-<TGConnectingPoint num="8" id="614" />
-<TGConnectingPoint num="9" id="615" />
-<TGConnectingPoint num="10" id="616" />
-<TGConnectingPoint num="11" id="617" />
+<TGConnectingPoint num="0" id="706" />
+<TGConnectingPoint num="1" id="707" />
+<TGConnectingPoint num="2" id="708" />
+<TGConnectingPoint num="3" id="709" />
+<TGConnectingPoint num="4" id="710" />
+<TGConnectingPoint num="5" id="711" />
+<TGConnectingPoint num="6" id="712" />
+<TGConnectingPoint num="7" id="713" />
+<TGConnectingPoint num="8" id="714" />
+<TGConnectingPoint num="9" id="715" />
+<TGConnectingPoint num="10" id="716" />
+<TGConnectingPoint num="11" id="717" />
 </COMPONENT>
 
-<COMPONENT type="5301" id="639" >
+<COMPONENT type="5301" id="739" >
 <cdparam x="546" y="285" />
 <sizeparam width="60" height="100" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="TGComponent" value="&lt;&lt;LS&gt;&gt;" />
-<TGConnectingPoint num="0" id="619" />
-<TGConnectingPoint num="1" id="620" />
-<TGConnectingPoint num="2" id="621" />
-<TGConnectingPoint num="3" id="622" />
-<TGConnectingPoint num="4" id="623" />
-<TGConnectingPoint num="5" id="624" />
-<TGConnectingPoint num="6" id="625" />
-<TGConnectingPoint num="7" id="626" />
-<TGConnectingPoint num="8" id="627" />
-<TGConnectingPoint num="9" id="628" />
-<TGConnectingPoint num="10" id="629" />
-<TGConnectingPoint num="11" id="630" />
-<TGConnectingPoint num="12" id="631" />
-<TGConnectingPoint num="13" id="632" />
-<TGConnectingPoint num="14" id="633" />
-<TGConnectingPoint num="15" id="634" />
-<TGConnectingPoint num="16" id="635" />
-<TGConnectingPoint num="17" id="636" />
-<TGConnectingPoint num="18" id="637" />
-<TGConnectingPoint num="19" id="638" />
+<TGConnectingPoint num="0" id="719" />
+<TGConnectingPoint num="1" id="720" />
+<TGConnectingPoint num="2" id="721" />
+<TGConnectingPoint num="3" id="722" />
+<TGConnectingPoint num="4" id="723" />
+<TGConnectingPoint num="5" id="724" />
+<TGConnectingPoint num="6" id="725" />
+<TGConnectingPoint num="7" id="726" />
+<TGConnectingPoint num="8" id="727" />
+<TGConnectingPoint num="9" id="728" />
+<TGConnectingPoint num="10" id="729" />
+<TGConnectingPoint num="11" id="730" />
+<TGConnectingPoint num="12" id="731" />
+<TGConnectingPoint num="13" id="732" />
+<TGConnectingPoint num="14" id="733" />
+<TGConnectingPoint num="15" id="734" />
+<TGConnectingPoint num="16" id="735" />
+<TGConnectingPoint num="17" id="736" />
+<TGConnectingPoint num="18" id="737" />
+<TGConnectingPoint num="19" id="738" />
 </COMPONENT>
 
-<COMPONENT type="5309" id="652" >
+<COMPONENT type="5309" id="752" >
 <cdparam x="597" y="498" />
 <sizeparam width="80" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="TGComponent" value="&lt;=&gt;" />
-<TGConnectingPoint num="0" id="640" />
-<TGConnectingPoint num="1" id="641" />
-<TGConnectingPoint num="2" id="642" />
-<TGConnectingPoint num="3" id="643" />
-<TGConnectingPoint num="4" id="644" />
-<TGConnectingPoint num="5" id="645" />
-<TGConnectingPoint num="6" id="646" />
-<TGConnectingPoint num="7" id="647" />
-<TGConnectingPoint num="8" id="648" />
-<TGConnectingPoint num="9" id="649" />
-<TGConnectingPoint num="10" id="650" />
-<TGConnectingPoint num="11" id="651" />
+<TGConnectingPoint num="0" id="740" />
+<TGConnectingPoint num="1" id="741" />
+<TGConnectingPoint num="2" id="742" />
+<TGConnectingPoint num="3" id="743" />
+<TGConnectingPoint num="4" id="744" />
+<TGConnectingPoint num="5" id="745" />
+<TGConnectingPoint num="6" id="746" />
+<TGConnectingPoint num="7" id="747" />
+<TGConnectingPoint num="8" id="748" />
+<TGConnectingPoint num="9" id="749" />
+<TGConnectingPoint num="10" id="750" />
+<TGConnectingPoint num="11" id="751" />
 </COMPONENT>
 
-<COMPONENT type="5308" id="657" >
+<COMPONENT type="5308" id="757" >
 <cdparam x="527" y="416" />
 <sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="TGComponent" value="prop02" />
-<TGConnectingPoint num="0" id="653" />
-<TGConnectingPoint num="1" id="654" />
-<TGConnectingPoint num="2" id="655" />
-<TGConnectingPoint num="3" id="656" />
+<TGConnectingPoint num="0" id="753" />
+<TGConnectingPoint num="1" id="754" />
+<TGConnectingPoint num="2" id="755" />
+<TGConnectingPoint num="3" id="756" />
 <extraparam>
 <liveness data="1" />
 <not data="false" />
@@ -1213,16 +1278,16 @@
 <MainCode value="void __user_init() {"/>
 <MainCode value="}"/>
 <Optimized value="true" />
-<Validated value="Wallet;CoffeeMachine;TeaButton;CoffeeButton;" />
+<Validated value="" />
 <Ignored value="" />
 
-<CONNECTOR type="5002" id="659" >
+<CONNECTOR type="5002" id="759" >
 <cdparam x="321" y="567" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
-<TGConnectingPoint num="0" id="658" />
-<P1  x="559" y="330" id="720" />
-<P2  x="560" y="377" id="753" />
+<TGConnectingPoint num="0" id="758" />
+<P1  x="559" y="330" id="820" />
+<P2  x="560" y="377" id="853" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <isd value="in pushCoffeeButton()" />
@@ -1230,13 +1295,13 @@
 <FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="5002" id="661" >
+<CONNECTOR type="5002" id="761" >
 <cdparam x="275" y="114" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block0 to Block0" value="" />
-<TGConnectingPoint num="0" id="660" />
-<P1  x="306" y="110" id="675" />
-<P2  x="445" y="108" id="749" />
+<TGConnectingPoint num="0" id="760" />
+<P1  x="306" y="109" id="775" />
+<P2  x="445" y="108" id="849" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <iso value="in getCoin(int nbOfCoins)" />
@@ -1246,13 +1311,13 @@
 <FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
 </extraparam>
 </CONNECTOR>
-<CONNECTOR type="5002" id="663" >
+<CONNECTOR type="5002" id="763" >
 <cdparam x="623" y="565" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
-<TGConnectingPoint num="0" id="662" />
-<P1  x="789" y="326" id="695" />
-<P2  x="790" y="377" id="754" />
+<TGConnectingPoint num="0" id="762" />
+<P1  x="789" y="326" id="795" />
+<P2  x="790" y="377" id="854" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <isd value="in pushTeaButton()" />
@@ -1260,36 +1325,36 @@
 <FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" />
 </extraparam>
 </CONNECTOR>
-<COMPONENT type="5000" id="688" >
-<cdparam x="106" y="56" />
+<COMPONENT type="5000" id="788" >
+<cdparam x="106" y="55" />
 <sizeparam width="200" height="218" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Block0" value="Wallet" />
-<TGConnectingPoint num="0" id="664" />
-<TGConnectingPoint num="1" id="665" />
-<TGConnectingPoint num="2" id="666" />
-<TGConnectingPoint num="3" id="667" />
-<TGConnectingPoint num="4" id="668" />
-<TGConnectingPoint num="5" id="669" />
-<TGConnectingPoint num="6" id="670" />
-<TGConnectingPoint num="7" id="671" />
-<TGConnectingPoint num="8" id="672" />
-<TGConnectingPoint num="9" id="673" />
-<TGConnectingPoint num="10" id="674" />
-<TGConnectingPoint num="11" id="675" />
-<TGConnectingPoint num="12" id="676" />
-<TGConnectingPoint num="13" id="677" />
-<TGConnectingPoint num="14" id="678" />
-<TGConnectingPoint num="15" id="679" />
-<TGConnectingPoint num="16" id="680" />
-<TGConnectingPoint num="17" id="681" />
-<TGConnectingPoint num="18" id="682" />
-<TGConnectingPoint num="19" id="683" />
-<TGConnectingPoint num="20" id="684" />
-<TGConnectingPoint num="21" id="685" />
-<TGConnectingPoint num="22" id="686" />
-<TGConnectingPoint num="23" id="687" />
+<TGConnectingPoint num="0" id="764" />
+<TGConnectingPoint num="1" id="765" />
+<TGConnectingPoint num="2" id="766" />
+<TGConnectingPoint num="3" id="767" />
+<TGConnectingPoint num="4" id="768" />
+<TGConnectingPoint num="5" id="769" />
+<TGConnectingPoint num="6" id="770" />
+<TGConnectingPoint num="7" id="771" />
+<TGConnectingPoint num="8" id="772" />
+<TGConnectingPoint num="9" id="773" />
+<TGConnectingPoint num="10" id="774" />
+<TGConnectingPoint num="11" id="775" />
+<TGConnectingPoint num="12" id="776" />
+<TGConnectingPoint num="13" id="777" />
+<TGConnectingPoint num="14" id="778" />
+<TGConnectingPoint num="15" id="779" />
+<TGConnectingPoint num="16" id="780" />
+<TGConnectingPoint num="17" id="781" />
+<TGConnectingPoint num="18" id="782" />
+<TGConnectingPoint num="19" id="783" />
+<TGConnectingPoint num="20" id="784" />
+<TGConnectingPoint num="21" id="785" />
+<TGConnectingPoint num="22" id="786" />
+<TGConnectingPoint num="23" id="787" />
 <extraparam>
 <CryptoBlock value="false" />
 <Attribute access="0" id="nbOfCoins" value="2" type="8" typeOther="" />
@@ -1302,36 +1367,36 @@
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5000" id="763" >
+<COMPONENT type="5000" id="863" >
 <cdparam x="445" y="19" />
 <sizeparam width="461" height="358" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Block0" value="CoffeeMachine" />
-<TGConnectingPoint num="0" id="739" />
-<TGConnectingPoint num="1" id="740" />
-<TGConnectingPoint num="2" id="741" />
-<TGConnectingPoint num="3" id="742" />
-<TGConnectingPoint num="4" id="743" />
-<TGConnectingPoint num="5" id="744" />
-<TGConnectingPoint num="6" id="745" />
-<TGConnectingPoint num="7" id="746" />
-<TGConnectingPoint num="8" id="747" />
-<TGConnectingPoint num="9" id="748" />
-<TGConnectingPoint num="10" id="749" />
-<TGConnectingPoint num="11" id="750" />
-<TGConnectingPoint num="12" id="751" />
-<TGConnectingPoint num="13" id="752" />
-<TGConnectingPoint num="14" id="753" />
-<TGConnectingPoint num="15" id="754" />
-<TGConnectingPoint num="16" id="755" />
-<TGConnectingPoint num="17" id="756" />
-<TGConnectingPoint num="18" id="757" />
-<TGConnectingPoint num="19" id="758" />
-<TGConnectingPoint num="20" id="759" />
-<TGConnectingPoint num="21" id="760" />
-<TGConnectingPoint num="22" id="761" />
-<TGConnectingPoint num="23" id="762" />
+<TGConnectingPoint num="0" id="839" />
+<TGConnectingPoint num="1" id="840" />
+<TGConnectingPoint num="2" id="841" />
+<TGConnectingPoint num="3" id="842" />
+<TGConnectingPoint num="4" id="843" />
+<TGConnectingPoint num="5" id="844" />
+<TGConnectingPoint num="6" id="845" />
+<TGConnectingPoint num="7" id="846" />
+<TGConnectingPoint num="8" id="847" />
+<TGConnectingPoint num="9" id="848" />
+<TGConnectingPoint num="10" id="849" />
+<TGConnectingPoint num="11" id="850" />
+<TGConnectingPoint num="12" id="851" />
+<TGConnectingPoint num="13" id="852" />
+<TGConnectingPoint num="14" id="853" />
+<TGConnectingPoint num="15" id="854" />
+<TGConnectingPoint num="16" id="855" />
+<TGConnectingPoint num="17" id="856" />
+<TGConnectingPoint num="18" id="857" />
+<TGConnectingPoint num="19" id="858" />
+<TGConnectingPoint num="20" id="859" />
+<TGConnectingPoint num="21" id="860" />
+<TGConnectingPoint num="22" id="861" />
+<TGConnectingPoint num="23" id="862" />
 <extraparam>
 <CryptoBlock value="false" />
 <Attribute access="0" id="teaMinDelay" value="3" type="8" typeOther="" />
@@ -1348,74 +1413,74 @@
 <Signal value="out ejectCoin(int nbOfCoins)" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="713" >
-<father id="763" num="0" />
+<SUBCOMPONENT type="5000" id="813" >
+<father id="863" num="0" />
 <cdparam x="695" y="224" />
 <sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
 <infoparam name="Block1" value="TeaButton" />
-<TGConnectingPoint num="0" id="689" />
-<TGConnectingPoint num="1" id="690" />
-<TGConnectingPoint num="2" id="691" />
-<TGConnectingPoint num="3" id="692" />
-<TGConnectingPoint num="4" id="693" />
-<TGConnectingPoint num="5" id="694" />
-<TGConnectingPoint num="6" id="695" />
-<TGConnectingPoint num="7" id="696" />
-<TGConnectingPoint num="8" id="697" />
-<TGConnectingPoint num="9" id="698" />
-<TGConnectingPoint num="10" id="699" />
-<TGConnectingPoint num="11" id="700" />
-<TGConnectingPoint num="12" id="701" />
-<TGConnectingPoint num="13" id="702" />
-<TGConnectingPoint num="14" id="703" />
-<TGConnectingPoint num="15" id="704" />
-<TGConnectingPoint num="16" id="705" />
-<TGConnectingPoint num="17" id="706" />
-<TGConnectingPoint num="18" id="707" />
-<TGConnectingPoint num="19" id="708" />
-<TGConnectingPoint num="20" id="709" />
-<TGConnectingPoint num="21" id="710" />
-<TGConnectingPoint num="22" id="711" />
-<TGConnectingPoint num="23" id="712" />
+<TGConnectingPoint num="0" id="789" />
+<TGConnectingPoint num="1" id="790" />
+<TGConnectingPoint num="2" id="791" />
+<TGConnectingPoint num="3" id="792" />
+<TGConnectingPoint num="4" id="793" />
+<TGConnectingPoint num="5" id="794" />
+<TGConnectingPoint num="6" id="795" />
+<TGConnectingPoint num="7" id="796" />
+<TGConnectingPoint num="8" id="797" />
+<TGConnectingPoint num="9" id="798" />
+<TGConnectingPoint num="10" id="799" />
+<TGConnectingPoint num="11" id="800" />
+<TGConnectingPoint num="12" id="801" />
+<TGConnectingPoint num="13" id="802" />
+<TGConnectingPoint num="14" id="803" />
+<TGConnectingPoint num="15" id="804" />
+<TGConnectingPoint num="16" id="805" />
+<TGConnectingPoint num="17" id="806" />
+<TGConnectingPoint num="18" id="807" />
+<TGConnectingPoint num="19" id="808" />
+<TGConnectingPoint num="20" id="809" />
+<TGConnectingPoint num="21" id="810" />
+<TGConnectingPoint num="22" id="811" />
+<TGConnectingPoint num="23" id="812" />
 <extraparam>
 <CryptoBlock value="false" />
 <Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" />
 <Signal value="out push()" attached="true" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="738" >
-<father id="763" num="1" />
+<SUBCOMPONENT type="5000" id="838" >
+<father id="863" num="1" />
 <cdparam x="464" y="228" />
 <sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
 <infoparam name="Block1" value="CoffeeButton" />
-<TGConnectingPoint num="0" id="714" />
-<TGConnectingPoint num="1" id="715" />
-<TGConnectingPoint num="2" id="716" />
-<TGConnectingPoint num="3" id="717" />
-<TGConnectingPoint num="4" id="718" />
-<TGConnectingPoint num="5" id="719" />
-<TGConnectingPoint num="6" id="720" />
-<TGConnectingPoint num="7" id="721" />
-<TGConnectingPoint num="8" id="722" />
-<TGConnectingPoint num="9" id="723" />
-<TGConnectingPoint num="10" id="724" />
-<TGConnectingPoint num="11" id="725" />
-<TGConnectingPoint num="12" id="726" />
-<TGConnectingPoint num="13" id="727" />
-<TGConnectingPoint num="14" id="728" />
-<TGConnectingPoint num="15" id="729" />
-<TGConnectingPoint num="16" id="730" />
-<TGConnectingPoint num="17" id="731" />
-<TGConnectingPoint num="18" id="732" />
-<TGConnectingPoint num="19" id="733" />
-<TGConnectingPoint num="20" id="734" />
-<TGConnectingPoint num="21" id="735" />
-<TGConnectingPoint num="22" id="736" />
-<TGConnectingPoint num="23" id="737" />
+<TGConnectingPoint num="0" id="814" />
+<TGConnectingPoint num="1" id="815" />
+<TGConnectingPoint num="2" id="816" />
+<TGConnectingPoint num="3" id="817" />
+<TGConnectingPoint num="4" id="818" />
+<TGConnectingPoint num="5" id="819" />
+<TGConnectingPoint num="6" id="820" />
+<TGConnectingPoint num="7" id="821" />
+<TGConnectingPoint num="8" id="822" />
+<TGConnectingPoint num="9" id="823" />
+<TGConnectingPoint num="10" id="824" />
+<TGConnectingPoint num="11" id="825" />
+<TGConnectingPoint num="12" id="826" />
+<TGConnectingPoint num="13" id="827" />
+<TGConnectingPoint num="14" id="828" />
+<TGConnectingPoint num="15" id="829" />
+<TGConnectingPoint num="16" id="830" />
+<TGConnectingPoint num="17" id="831" />
+<TGConnectingPoint num="18" id="832" />
+<TGConnectingPoint num="19" id="833" />
+<TGConnectingPoint num="20" id="834" />
+<TGConnectingPoint num="21" id="835" />
+<TGConnectingPoint num="22" id="836" />
+<TGConnectingPoint num="23" id="837" />
 <extraparam>
 <CryptoBlock value="false" />
 <Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" />
@@ -1427,25 +1492,25 @@
 </AVATARBlockDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="Wallet" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="770" >
+<CONNECTOR type="5102" id="870" >
 <cdparam x="516" y="264" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="769" />
-<P1  x="485" y="219" id="811" />
-<P2  x="485" y="274" id="822" />
+<TGConnectingPoint num="0" id="869" />
+<P1  x="485" y="219" id="911" />
+<P2  x="485" y="275" id="922" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="768" >
-<father id="770" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="868" >
+<father id="870" num="0" />
 <cdparam x="493" y="251" />
-<sizeparam width="173" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="161" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="764" />
-<TGConnectingPoint num="1" id="765" />
-<TGConnectingPoint num="2" id="766" />
-<TGConnectingPoint num="3" id="767" />
+<TGConnectingPoint num="0" id="864" />
+<TGConnectingPoint num="1" id="865" />
+<TGConnectingPoint num="2" id="866" />
+<TGConnectingPoint num="3" id="867" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1458,25 +1523,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="777" >
+<CONNECTOR type="5102" id="877" >
 <cdparam x="382" y="165" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="776" />
-<P1  x="382" y="165" id="918" />
-<P2  x="485" y="189" id="810" />
+<TGConnectingPoint num="0" id="876" />
+<P1  x="382" y="165" id="1018" />
+<P2  x="485" y="189" id="910" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="775" >
-<father id="777" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="875" >
+<father id="877" num="0" />
 <cdparam x="382" y="205" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="771" />
-<TGConnectingPoint num="1" id="772" />
-<TGConnectingPoint num="2" id="773" />
-<TGConnectingPoint num="3" id="774" />
+<TGConnectingPoint num="0" id="871" />
+<TGConnectingPoint num="1" id="872" />
+<TGConnectingPoint num="2" id="873" />
+<TGConnectingPoint num="3" id="874" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1487,25 +1552,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="784" >
+<CONNECTOR type="5102" id="884" >
 <cdparam x="223" y="260" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="783" />
-<P1  x="251" y="231" id="800" />
-<P2  x="252" y="300" id="863" />
+<TGConnectingPoint num="0" id="883" />
+<P1  x="251" y="231" id="900" />
+<P2  x="252" y="300" id="963" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="782" >
-<father id="784" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="882" >
+<father id="884" num="0" />
 <cdparam x="175" y="246" />
-<sizeparam width="221" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="205" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="778" />
-<TGConnectingPoint num="1" id="779" />
-<TGConnectingPoint num="2" id="780" />
-<TGConnectingPoint num="3" id="781" />
+<TGConnectingPoint num="0" id="878" />
+<TGConnectingPoint num="1" id="879" />
+<TGConnectingPoint num="2" id="880" />
+<TGConnectingPoint num="3" id="881" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="minUserDelay" />
@@ -1518,25 +1583,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="791" >
+<CONNECTOR type="5102" id="891" >
 <cdparam x="357" y="165" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="790" />
-<P1  x="357" y="165" id="917" />
-<P2  x="251" y="201" id="799" />
+<TGConnectingPoint num="0" id="890" />
+<P1  x="357" y="165" id="1017" />
+<P2  x="251" y="201" id="899" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="789" >
-<father id="791" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="889" >
+<father id="891" num="0" />
 <cdparam x="220" y="174" />
-<sizeparam width="99" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="93" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="785" />
-<TGConnectingPoint num="1" id="786" />
-<TGConnectingPoint num="2" id="787" />
-<TGConnectingPoint num="3" id="788" />
+<TGConnectingPoint num="0" id="885" />
+<TGConnectingPoint num="1" id="886" />
+<TGConnectingPoint num="2" id="887" />
+<TGConnectingPoint num="3" id="888" />
 <extraparam>
 <guard value="[nbOfCoins &gt; 0]" />
 <afterMin value="" />
@@ -1547,25 +1612,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="798" >
+<CONNECTOR type="5102" id="898" >
 <cdparam x="369" y="115" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="797" />
-<P1  x="370" y="64" id="944" />
-<P2  x="370" y="135" id="904" />
+<TGConnectingPoint num="0" id="897" />
+<P1  x="370" y="64" id="1044" />
+<P2  x="370" y="135" id="1004" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="796" >
-<father id="798" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="896" >
+<father id="898" num="0" />
 <cdparam x="376" y="105" />
-<sizeparam width="173" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="156" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="792" />
-<TGConnectingPoint num="1" id="793" />
-<TGConnectingPoint num="2" id="794" />
-<TGConnectingPoint num="3" id="795" />
+<TGConnectingPoint num="0" id="892" />
+<TGConnectingPoint num="1" id="893" />
+<TGConnectingPoint num="2" id="894" />
+<TGConnectingPoint num="3" id="895" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1577,224 +1642,232 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5103" id="809" >
-<cdparam x="214" y="206" />
-<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5103" id="909" >
+<cdparam x="217" y="206" />
+<sizeparam width="69" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Send signal" value="putCoin(x)" />
-<TGConnectingPoint num="0" id="799" />
-<TGConnectingPoint num="1" id="800" />
-<TGConnectingPoint num="2" id="801" />
-<TGConnectingPoint num="3" id="802" />
-<TGConnectingPoint num="4" id="803" />
-<TGConnectingPoint num="5" id="804" />
-<TGConnectingPoint num="6" id="805" />
-<TGConnectingPoint num="7" id="806" />
-<TGConnectingPoint num="8" id="807" />
-<TGConnectingPoint num="9" id="808" />
+<TGConnectingPoint num="0" id="899" />
+<TGConnectingPoint num="1" id="900" />
+<TGConnectingPoint num="2" id="901" />
+<TGConnectingPoint num="3" id="902" />
+<TGConnectingPoint num="4" id="903" />
+<TGConnectingPoint num="5" id="904" />
+<TGConnectingPoint num="6" id="905" />
+<TGConnectingPoint num="7" id="906" />
+<TGConnectingPoint num="8" id="907" />
+<TGConnectingPoint num="9" id="908" />
 </COMPONENT>
 
-<COMPONENT type="5104" id="820" >
-<cdparam x="444" y="194" />
-<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5104" id="920" >
+<cdparam x="447" y="194" />
+<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Receive signal" value="getCoin(x)" />
-<TGConnectingPoint num="0" id="810" />
-<TGConnectingPoint num="1" id="811" />
-<TGConnectingPoint num="2" id="812" />
-<TGConnectingPoint num="3" id="813" />
-<TGConnectingPoint num="4" id="814" />
-<TGConnectingPoint num="5" id="815" />
-<TGConnectingPoint num="6" id="816" />
-<TGConnectingPoint num="7" id="817" />
-<TGConnectingPoint num="8" id="818" />
-<TGConnectingPoint num="9" id="819" />
+<TGConnectingPoint num="0" id="910" />
+<TGConnectingPoint num="1" id="911" />
+<TGConnectingPoint num="2" id="912" />
+<TGConnectingPoint num="3" id="913" />
+<TGConnectingPoint num="4" id="914" />
+<TGConnectingPoint num="5" id="915" />
+<TGConnectingPoint num="6" id="916" />
+<TGConnectingPoint num="7" id="917" />
+<TGConnectingPoint num="8" id="918" />
+<TGConnectingPoint num="9" id="919" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="861" >
-<cdparam x="460" y="274" />
+<COMPONENT type="5106" id="961" >
+<cdparam x="460" y="275" />
 <sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="821" />
-<TGConnectingPoint num="1" id="822" />
-<TGConnectingPoint num="2" id="823" />
-<TGConnectingPoint num="3" id="824" />
-<TGConnectingPoint num="4" id="825" />
-<TGConnectingPoint num="5" id="826" />
-<TGConnectingPoint num="6" id="827" />
-<TGConnectingPoint num="7" id="828" />
-<TGConnectingPoint num="8" id="829" />
-<TGConnectingPoint num="9" id="830" />
-<TGConnectingPoint num="10" id="831" />
-<TGConnectingPoint num="11" id="832" />
-<TGConnectingPoint num="12" id="833" />
-<TGConnectingPoint num="13" id="834" />
-<TGConnectingPoint num="14" id="835" />
-<TGConnectingPoint num="15" id="836" />
-<TGConnectingPoint num="16" id="837" />
-<TGConnectingPoint num="17" id="838" />
-<TGConnectingPoint num="18" id="839" />
-<TGConnectingPoint num="19" id="840" />
-<TGConnectingPoint num="20" id="841" />
-<TGConnectingPoint num="21" id="842" />
-<TGConnectingPoint num="22" id="843" />
-<TGConnectingPoint num="23" id="844" />
-<TGConnectingPoint num="24" id="845" />
-<TGConnectingPoint num="25" id="846" />
-<TGConnectingPoint num="26" id="847" />
-<TGConnectingPoint num="27" id="848" />
-<TGConnectingPoint num="28" id="849" />
-<TGConnectingPoint num="29" id="850" />
-<TGConnectingPoint num="30" id="851" />
-<TGConnectingPoint num="31" id="852" />
-<TGConnectingPoint num="32" id="853" />
-<TGConnectingPoint num="33" id="854" />
-<TGConnectingPoint num="34" id="855" />
-<TGConnectingPoint num="35" id="856" />
-<TGConnectingPoint num="36" id="857" />
-<TGConnectingPoint num="37" id="858" />
-<TGConnectingPoint num="38" id="859" />
-<TGConnectingPoint num="39" id="860" />
+<TGConnectingPoint num="0" id="921" />
+<TGConnectingPoint num="1" id="922" />
+<TGConnectingPoint num="2" id="923" />
+<TGConnectingPoint num="3" id="924" />
+<TGConnectingPoint num="4" id="925" />
+<TGConnectingPoint num="5" id="926" />
+<TGConnectingPoint num="6" id="927" />
+<TGConnectingPoint num="7" id="928" />
+<TGConnectingPoint num="8" id="929" />
+<TGConnectingPoint num="9" id="930" />
+<TGConnectingPoint num="10" id="931" />
+<TGConnectingPoint num="11" id="932" />
+<TGConnectingPoint num="12" id="933" />
+<TGConnectingPoint num="13" id="934" />
+<TGConnectingPoint num="14" id="935" />
+<TGConnectingPoint num="15" id="936" />
+<TGConnectingPoint num="16" id="937" />
+<TGConnectingPoint num="17" id="938" />
+<TGConnectingPoint num="18" id="939" />
+<TGConnectingPoint num="19" id="940" />
+<TGConnectingPoint num="20" id="941" />
+<TGConnectingPoint num="21" id="942" />
+<TGConnectingPoint num="22" id="943" />
+<TGConnectingPoint num="23" id="944" />
+<TGConnectingPoint num="24" id="945" />
+<TGConnectingPoint num="25" id="946" />
+<TGConnectingPoint num="26" id="947" />
+<TGConnectingPoint num="27" id="948" />
+<TGConnectingPoint num="28" id="949" />
+<TGConnectingPoint num="29" id="950" />
+<TGConnectingPoint num="30" id="951" />
+<TGConnectingPoint num="31" id="952" />
+<TGConnectingPoint num="32" id="953" />
+<TGConnectingPoint num="33" id="954" />
+<TGConnectingPoint num="34" id="955" />
+<TGConnectingPoint num="35" id="956" />
+<TGConnectingPoint num="36" id="957" />
+<TGConnectingPoint num="37" id="958" />
+<TGConnectingPoint num="38" id="959" />
+<TGConnectingPoint num="39" id="960" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="902" >
+<COMPONENT type="5106" id="1002" >
 <cdparam x="227" y="300" />
 <sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="862" />
-<TGConnectingPoint num="1" id="863" />
-<TGConnectingPoint num="2" id="864" />
-<TGConnectingPoint num="3" id="865" />
-<TGConnectingPoint num="4" id="866" />
-<TGConnectingPoint num="5" id="867" />
-<TGConnectingPoint num="6" id="868" />
-<TGConnectingPoint num="7" id="869" />
-<TGConnectingPoint num="8" id="870" />
-<TGConnectingPoint num="9" id="871" />
-<TGConnectingPoint num="10" id="872" />
-<TGConnectingPoint num="11" id="873" />
-<TGConnectingPoint num="12" id="874" />
-<TGConnectingPoint num="13" id="875" />
-<TGConnectingPoint num="14" id="876" />
-<TGConnectingPoint num="15" id="877" />
-<TGConnectingPoint num="16" id="878" />
-<TGConnectingPoint num="17" id="879" />
-<TGConnectingPoint num="18" id="880" />
-<TGConnectingPoint num="19" id="881" />
-<TGConnectingPoint num="20" id="882" />
-<TGConnectingPoint num="21" id="883" />
-<TGConnectingPoint num="22" id="884" />
-<TGConnectingPoint num="23" id="885" />
-<TGConnectingPoint num="24" id="886" />
-<TGConnectingPoint num="25" id="887" />
-<TGConnectingPoint num="26" id="888" />
-<TGConnectingPoint num="27" id="889" />
-<TGConnectingPoint num="28" id="890" />
-<TGConnectingPoint num="29" id="891" />
-<TGConnectingPoint num="30" id="892" />
-<TGConnectingPoint num="31" id="893" />
-<TGConnectingPoint num="32" id="894" />
-<TGConnectingPoint num="33" id="895" />
-<TGConnectingPoint num="34" id="896" />
-<TGConnectingPoint num="35" id="897" />
-<TGConnectingPoint num="36" id="898" />
-<TGConnectingPoint num="37" id="899" />
-<TGConnectingPoint num="38" id="900" />
-<TGConnectingPoint num="39" id="901" />
+<TGConnectingPoint num="0" id="962" />
+<TGConnectingPoint num="1" id="963" />
+<TGConnectingPoint num="2" id="964" />
+<TGConnectingPoint num="3" id="965" />
+<TGConnectingPoint num="4" id="966" />
+<TGConnectingPoint num="5" id="967" />
+<TGConnectingPoint num="6" id="968" />
+<TGConnectingPoint num="7" id="969" />
+<TGConnectingPoint num="8" id="970" />
+<TGConnectingPoint num="9" id="971" />
+<TGConnectingPoint num="10" id="972" />
+<TGConnectingPoint num="11" id="973" />
+<TGConnectingPoint num="12" id="974" />
+<TGConnectingPoint num="13" id="975" />
+<TGConnectingPoint num="14" id="976" />
+<TGConnectingPoint num="15" id="977" />
+<TGConnectingPoint num="16" id="978" />
+<TGConnectingPoint num="17" id="979" />
+<TGConnectingPoint num="18" id="980" />
+<TGConnectingPoint num="19" id="981" />
+<TGConnectingPoint num="20" id="982" />
+<TGConnectingPoint num="21" id="983" />
+<TGConnectingPoint num="22" id="984" />
+<TGConnectingPoint num="23" id="985" />
+<TGConnectingPoint num="24" id="986" />
+<TGConnectingPoint num="25" id="987" />
+<TGConnectingPoint num="26" id="988" />
+<TGConnectingPoint num="27" id="989" />
+<TGConnectingPoint num="28" id="990" />
+<TGConnectingPoint num="29" id="991" />
+<TGConnectingPoint num="30" id="992" />
+<TGConnectingPoint num="31" id="993" />
+<TGConnectingPoint num="32" id="994" />
+<TGConnectingPoint num="33" id="995" />
+<TGConnectingPoint num="34" id="996" />
+<TGConnectingPoint num="35" id="997" />
+<TGConnectingPoint num="36" id="998" />
+<TGConnectingPoint num="37" id="999" />
+<TGConnectingPoint num="38" id="1000" />
+<TGConnectingPoint num="39" id="1001" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="943" >
+<COMPONENT type="5106" id="1043" >
 <cdparam x="345" y="135" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="903" />
-<TGConnectingPoint num="1" id="904" />
-<TGConnectingPoint num="2" id="905" />
-<TGConnectingPoint num="3" id="906" />
-<TGConnectingPoint num="4" id="907" />
-<TGConnectingPoint num="5" id="908" />
-<TGConnectingPoint num="6" id="909" />
-<TGConnectingPoint num="7" id="910" />
-<TGConnectingPoint num="8" id="911" />
-<TGConnectingPoint num="9" id="912" />
-<TGConnectingPoint num="10" id="913" />
-<TGConnectingPoint num="11" id="914" />
-<TGConnectingPoint num="12" id="915" />
-<TGConnectingPoint num="13" id="916" />
-<TGConnectingPoint num="14" id="917" />
-<TGConnectingPoint num="15" id="918" />
-<TGConnectingPoint num="16" id="919" />
-<TGConnectingPoint num="17" id="920" />
-<TGConnectingPoint num="18" id="921" />
-<TGConnectingPoint num="19" id="922" />
-<TGConnectingPoint num="20" id="923" />
-<TGConnectingPoint num="21" id="924" />
-<TGConnectingPoint num="22" id="925" />
-<TGConnectingPoint num="23" id="926" />
-<TGConnectingPoint num="24" id="927" />
-<TGConnectingPoint num="25" id="928" />
-<TGConnectingPoint num="26" id="929" />
-<TGConnectingPoint num="27" id="930" />
-<TGConnectingPoint num="28" id="931" />
-<TGConnectingPoint num="29" id="932" />
-<TGConnectingPoint num="30" id="933" />
-<TGConnectingPoint num="31" id="934" />
-<TGConnectingPoint num="32" id="935" />
-<TGConnectingPoint num="33" id="936" />
-<TGConnectingPoint num="34" id="937" />
-<TGConnectingPoint num="35" id="938" />
-<TGConnectingPoint num="36" id="939" />
-<TGConnectingPoint num="37" id="940" />
-<TGConnectingPoint num="38" id="941" />
-<TGConnectingPoint num="39" id="942" />
+<TGConnectingPoint num="0" id="1003" />
+<TGConnectingPoint num="1" id="1004" />
+<TGConnectingPoint num="2" id="1005" />
+<TGConnectingPoint num="3" id="1006" />
+<TGConnectingPoint num="4" id="1007" />
+<TGConnectingPoint num="5" id="1008" />
+<TGConnectingPoint num="6" id="1009" />
+<TGConnectingPoint num="7" id="1010" />
+<TGConnectingPoint num="8" id="1011" />
+<TGConnectingPoint num="9" id="1012" />
+<TGConnectingPoint num="10" id="1013" />
+<TGConnectingPoint num="11" id="1014" />
+<TGConnectingPoint num="12" id="1015" />
+<TGConnectingPoint num="13" id="1016" />
+<TGConnectingPoint num="14" id="1017" />
+<TGConnectingPoint num="15" id="1018" />
+<TGConnectingPoint num="16" id="1019" />
+<TGConnectingPoint num="17" id="1020" />
+<TGConnectingPoint num="18" id="1021" />
+<TGConnectingPoint num="19" id="1022" />
+<TGConnectingPoint num="20" id="1023" />
+<TGConnectingPoint num="21" id="1024" />
+<TGConnectingPoint num="22" id="1025" />
+<TGConnectingPoint num="23" id="1026" />
+<TGConnectingPoint num="24" id="1027" />
+<TGConnectingPoint num="25" id="1028" />
+<TGConnectingPoint num="26" id="1029" />
+<TGConnectingPoint num="27" id="1030" />
+<TGConnectingPoint num="28" id="1031" />
+<TGConnectingPoint num="29" id="1032" />
+<TGConnectingPoint num="30" id="1033" />
+<TGConnectingPoint num="31" id="1034" />
+<TGConnectingPoint num="32" id="1035" />
+<TGConnectingPoint num="33" id="1036" />
+<TGConnectingPoint num="34" id="1037" />
+<TGConnectingPoint num="35" id="1038" />
+<TGConnectingPoint num="36" id="1039" />
+<TGConnectingPoint num="37" id="1040" />
+<TGConnectingPoint num="38" id="1041" />
+<TGConnectingPoint num="39" id="1042" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="945" >
+<COMPONENT type="5100" id="1045" >
 <cdparam x="363" y="44" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="944" />
+<TGConnectingPoint num="0" id="1044" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="CoffeeMachine" minX="10" maxX="1400" minY="10" maxY="1400" >
-<CONNECTOR type="5102" id="952" >
+<CONNECTOR type="118" id="1046" >
+<cdparam x="372" y="83" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="412" y="82" id="1322" />
+<P2  x="472" y="82" id="1155" />
+<AutomaticDrawing  data="false" />
+</CONNECTOR>
+<CONNECTOR type="5102" id="1053" >
 <cdparam x="691" y="288" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="951" />
-<P1  x="699" y="289" id="1090" />
-<P2  x="699" y="316" id="1062" />
+<TGConnectingPoint num="0" id="1052" />
+<P1  x="699" y="289" id="1208" />
+<P2  x="699" y="316" id="1180" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="950" >
-<father id="952" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1051" >
+<father id="1053" num="0" />
 <cdparam x="691" y="328" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="946" />
-<TGConnectingPoint num="1" id="947" />
-<TGConnectingPoint num="2" id="948" />
-<TGConnectingPoint num="3" id="949" />
+<TGConnectingPoint num="0" id="1047" />
+<TGConnectingPoint num="1" id="1048" />
+<TGConnectingPoint num="2" id="1049" />
+<TGConnectingPoint num="3" id="1050" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1805,25 +1878,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="959" >
+<CONNECTOR type="5102" id="1060" >
 <cdparam x="481" y="501" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
-<TGConnectingPoint num="0" id="958" />
-<P1  x="437" y="525" id="1292" />
-<P2  x="323" y="748" id="1218" />
+<TGConnectingPoint num="0" id="1059" />
+<P1  x="442" y="527" id="1410" />
+<P2  x="323" y="748" id="1336" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="957" >
-<father id="959" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1058" >
+<father id="1060" num="0" />
 <cdparam x="420" y="552" />
 <sizeparam width="85" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="953" />
-<TGConnectingPoint num="1" id="954" />
-<TGConnectingPoint num="2" id="955" />
-<TGConnectingPoint num="3" id="956" />
+<TGConnectingPoint num="0" id="1054" />
+<TGConnectingPoint num="1" id="1055" />
+<TGConnectingPoint num="2" id="1056" />
+<TGConnectingPoint num="3" id="1057" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1835,25 +1908,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="966" >
+<CONNECTOR type="5102" id="1067" >
 <cdparam x="555" y="559" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="965" />
-<P1  x="321" y="455" id="1319" />
-<P2  x="437" y="495" id="1291" />
+<TGConnectingPoint num="0" id="1066" />
+<P1  x="326" y="457" id="1437" />
+<P2  x="442" y="497" id="1409" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="964" >
-<father id="966" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1065" >
+<father id="1067" num="0" />
 <cdparam x="395" y="448" />
 <sizeparam width="94" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="960" />
-<TGConnectingPoint num="1" id="961" />
-<TGConnectingPoint num="2" id="962" />
-<TGConnectingPoint num="3" id="963" />
+<TGConnectingPoint num="0" id="1061" />
+<TGConnectingPoint num="1" id="1062" />
+<TGConnectingPoint num="2" id="1063" />
+<TGConnectingPoint num="3" id="1064" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="coinDelay" />
@@ -1864,25 +1937,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="973" >
+<CONNECTOR type="5102" id="1074" >
 <cdparam x="355" y="545" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
-<TGConnectingPoint num="0" id="972" />
-<P1  x="293" y="552" id="1357" />
-<P2  x="289" y="748" id="1210" />
+<TGConnectingPoint num="0" id="1073" />
+<P1  x="298" y="554" id="1475" />
+<P2  x="289" y="748" id="1328" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="971" >
-<father id="973" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1072" >
+<father id="1074" num="0" />
 <cdparam x="284" y="594" />
 <sizeparam width="228" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="967" />
-<TGConnectingPoint num="1" id="968" />
-<TGConnectingPoint num="2" id="969" />
-<TGConnectingPoint num="3" id="970" />
+<TGConnectingPoint num="0" id="1068" />
+<TGConnectingPoint num="1" id="1069" />
+<TGConnectingPoint num="2" id="1070" />
+<TGConnectingPoint num="3" id="1071" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1895,25 +1968,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="980" >
+<CONNECTOR type="5102" id="1081" >
 <cdparam x="295" y="465" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="979" />
-<P1  x="288" y="475" id="1330" />
-<P2  x="293" y="522" id="1356" />
+<TGConnectingPoint num="0" id="1080" />
+<P1  x="293" y="477" id="1448" />
+<P2  x="298" y="524" id="1474" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="978" >
-<father id="980" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1079" >
+<father id="1081" num="0" />
 <cdparam x="295" y="505" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="974" />
-<TGConnectingPoint num="1" id="975" />
-<TGConnectingPoint num="2" id="976" />
-<TGConnectingPoint num="3" id="977" />
+<TGConnectingPoint num="0" id="1075" />
+<TGConnectingPoint num="1" id="1076" />
+<TGConnectingPoint num="2" id="1077" />
+<TGConnectingPoint num="3" id="1078" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1924,25 +1997,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="987" >
+<CONNECTOR type="5102" id="1088" >
 <cdparam x="148" y="549" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
-<TGConnectingPoint num="0" id="986" />
-<P1  x="121" y="552" id="1303" />
-<P2  x="255" y="748" id="1217" />
+<TGConnectingPoint num="0" id="1087" />
+<P1  x="126" y="554" id="1421" />
+<P2  x="255" y="748" id="1335" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="985" >
-<father id="987" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1086" >
+<father id="1088" num="0" />
 <cdparam x="32" y="587" />
 <sizeparam width="262" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="981" />
-<TGConnectingPoint num="1" id="982" />
-<TGConnectingPoint num="2" id="983" />
-<TGConnectingPoint num="3" id="984" />
+<TGConnectingPoint num="0" id="1082" />
+<TGConnectingPoint num="1" id="1083" />
+<TGConnectingPoint num="2" id="1084" />
+<TGConnectingPoint num="3" id="1085" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1955,25 +2028,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="994" >
+<CONNECTOR type="5102" id="1095" >
 <cdparam x="229" y="465" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="993" />
-<P1  x="222" y="475" id="1329" />
-<P2  x="121" y="522" id="1302" />
+<TGConnectingPoint num="0" id="1094" />
+<P1  x="227" y="477" id="1447" />
+<P2  x="126" y="524" id="1420" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="992" >
-<father id="994" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1093" >
+<father id="1095" num="0" />
 <cdparam x="229" y="505" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="988" />
-<TGConnectingPoint num="1" id="989" />
-<TGConnectingPoint num="2" id="990" />
-<TGConnectingPoint num="3" id="991" />
+<TGConnectingPoint num="0" id="1089" />
+<TGConnectingPoint num="1" id="1090" />
+<TGConnectingPoint num="2" id="1091" />
+<TGConnectingPoint num="3" id="1092" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1984,25 +2057,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1001" >
+<CONNECTOR type="5102" id="1102" >
 <cdparam x="280" y="420" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="1000" />
-<P1  x="256" y="419" id="1313" />
-<P2  x="255" y="435" id="1316" />
+<TGConnectingPoint num="0" id="1101" />
+<P1  x="261" y="421" id="1431" />
+<P2  x="260" y="437" id="1434" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="999" >
-<father id="1001" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1100" >
+<father id="1102" num="0" />
 <cdparam x="280" y="460" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="995" />
-<TGConnectingPoint num="1" id="996" />
-<TGConnectingPoint num="2" id="997" />
-<TGConnectingPoint num="3" id="998" />
+<TGConnectingPoint num="0" id="1096" />
+<TGConnectingPoint num="1" id="1097" />
+<TGConnectingPoint num="2" id="1098" />
+<TGConnectingPoint num="3" id="1099" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2013,25 +2086,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1008" >
+<CONNECTOR type="5102" id="1109" >
 <cdparam x="667" y="346" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="1007" />
-<P1  x="699" y="346" id="1063" />
-<P2  x="699" y="381" id="1251" />
+<TGConnectingPoint num="0" id="1108" />
+<P1  x="699" y="346" id="1181" />
+<P2  x="699" y="381" id="1369" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1006" >
-<father id="1008" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1107" >
+<father id="1109" num="0" />
 <cdparam x="707" y="368" />
 <sizeparam width="85" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1002" />
-<TGConnectingPoint num="1" id="1003" />
-<TGConnectingPoint num="2" id="1004" />
-<TGConnectingPoint num="3" id="1005" />
+<TGConnectingPoint num="0" id="1103" />
+<TGConnectingPoint num="1" id="1104" />
+<TGConnectingPoint num="2" id="1105" />
+<TGConnectingPoint num="3" id="1106" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2043,25 +2116,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1015" >
+<CONNECTOR type="5102" id="1116" >
 <cdparam x="348" y="228" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1014" />
-<P1  x="388" y="208" id="1129" />
-<P2  x="649" y="264" id="1087" />
+<TGConnectingPoint num="0" id="1115" />
+<P1  x="388" y="208" id="1247" />
+<P2  x="649" y="264" id="1205" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1013" >
-<father id="1015" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1114" >
+<father id="1116" num="0" />
 <cdparam x="411" y="206" />
 <sizeparam width="94" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1009" />
-<TGConnectingPoint num="1" id="1010" />
-<TGConnectingPoint num="2" id="1011" />
-<TGConnectingPoint num="3" id="1012" />
+<TGConnectingPoint num="0" id="1110" />
+<TGConnectingPoint num="1" id="1111" />
+<TGConnectingPoint num="2" id="1112" />
+<TGConnectingPoint num="3" id="1113" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="coinDelay" />
@@ -2072,25 +2145,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1022" >
+<CONNECTOR type="5102" id="1123" >
 <cdparam x="243" y="319" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="1021" />
-<P1  x="277" y="305" id="1074" />
-<P2  x="306" y="370" id="1368" />
+<TGConnectingPoint num="0" id="1122" />
+<P1  x="277" y="305" id="1192" />
+<P2  x="311" y="372" id="1486" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1020" >
-<father id="1022" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1121" >
+<father id="1123" num="0" />
 <cdparam x="243" y="359" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1016" />
-<TGConnectingPoint num="1" id="1017" />
-<TGConnectingPoint num="2" id="1018" />
-<TGConnectingPoint num="3" id="1019" />
+<TGConnectingPoint num="0" id="1117" />
+<TGConnectingPoint num="1" id="1118" />
+<TGConnectingPoint num="2" id="1119" />
+<TGConnectingPoint num="3" id="1120" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2101,25 +2174,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1029" >
+<CONNECTOR type="5102" id="1130" >
 <cdparam x="270" y="224" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1028" />
-<P1  x="270" y="228" id="1139" />
-<P2  x="277" y="275" id="1073" />
+<TGConnectingPoint num="0" id="1129" />
+<P1  x="270" y="228" id="1257" />
+<P2  x="277" y="275" id="1191" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1027" >
-<father id="1029" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1128" >
+<father id="1130" num="0" />
 <cdparam x="270" y="264" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1023" />
-<TGConnectingPoint num="1" id="1024" />
-<TGConnectingPoint num="2" id="1025" />
-<TGConnectingPoint num="3" id="1026" />
+<TGConnectingPoint num="0" id="1124" />
+<TGConnectingPoint num="1" id="1125" />
+<TGConnectingPoint num="2" id="1126" />
+<TGConnectingPoint num="3" id="1127" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2130,25 +2203,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1036" >
+<CONNECTOR type="5102" id="1137" >
 <cdparam x="309" y="160" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="1035" />
-<P1  x="306" y="166" id="1052" />
-<P2  x="309" y="188" id="1126" />
+<TGConnectingPoint num="0" id="1136" />
+<P1  x="306" y="166" id="1170" />
+<P2  x="309" y="188" id="1244" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1034" >
-<father id="1036" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1135" >
+<father id="1137" num="0" />
 <cdparam x="328" y="178" />
 <sizeparam width="161" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1030" />
-<TGConnectingPoint num="1" id="1031" />
-<TGConnectingPoint num="2" id="1032" />
-<TGConnectingPoint num="3" id="1033" />
+<TGConnectingPoint num="0" id="1131" />
+<TGConnectingPoint num="1" id="1132" />
+<TGConnectingPoint num="2" id="1133" />
+<TGConnectingPoint num="3" id="1134" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2160,25 +2233,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1043" >
+<CONNECTOR type="5102" id="1144" >
 <cdparam x="303" y="103" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1042" />
-<P1  x="303" y="103" id="1174" />
-<P2  x="306" y="136" id="1051" />
+<TGConnectingPoint num="0" id="1143" />
+<P1  x="302" y="102" id="1292" />
+<P2  x="306" y="136" id="1169" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1041" >
-<father id="1043" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1142" >
+<father id="1144" num="0" />
 <cdparam x="303" y="143" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1037" />
-<TGConnectingPoint num="1" id="1038" />
-<TGConnectingPoint num="2" id="1039" />
-<TGConnectingPoint num="3" id="1040" />
+<TGConnectingPoint num="0" id="1138" />
+<TGConnectingPoint num="1" id="1139" />
+<TGConnectingPoint num="2" id="1140" />
+<TGConnectingPoint num="3" id="1141" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2189,25 +2262,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1050" >
+<CONNECTOR type="5102" id="1151" >
 <cdparam x="303" y="40" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="1049" />
-<P1  x="303" y="40" id="1166" />
-<P2  x="303" y="63" id="1169" />
+<TGConnectingPoint num="0" id="1150" />
+<P1  x="303" y="40" id="1284" />
+<P2  x="302" y="62" id="1287" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1048" >
-<father id="1050" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1149" >
+<father id="1151" num="0" />
 <cdparam x="303" y="80" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1044" />
-<TGConnectingPoint num="1" id="1045" />
-<TGConnectingPoint num="2" id="1046" />
-<TGConnectingPoint num="3" id="1047" />
+<TGConnectingPoint num="0" id="1145" />
+<TGConnectingPoint num="1" id="1146" />
+<TGConnectingPoint num="2" id="1147" />
+<TGConnectingPoint num="3" id="1148" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2218,483 +2291,513 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5104" id="1061" >
+<COMPONENT type="301" id="1168" >
+<cdparam x="472" y="75" />
+<sizeparam width="100" height="15" minWidth="20" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="UML Note" value="Activity1.docx
+" />
+<TGConnectingPoint num="0" id="1152" />
+<TGConnectingPoint num="1" id="1153" />
+<TGConnectingPoint num="2" id="1154" />
+<TGConnectingPoint num="3" id="1155" />
+<TGConnectingPoint num="4" id="1156" />
+<TGConnectingPoint num="5" id="1157" />
+<TGConnectingPoint num="6" id="1158" />
+<TGConnectingPoint num="7" id="1159" />
+<TGConnectingPoint num="8" id="1160" />
+<TGConnectingPoint num="9" id="1161" />
+<TGConnectingPoint num="10" id="1162" />
+<TGConnectingPoint num="11" id="1163" />
+<TGConnectingPoint num="12" id="1164" />
+<TGConnectingPoint num="13" id="1165" />
+<TGConnectingPoint num="14" id="1166" />
+<TGConnectingPoint num="15" id="1167" />
+<extraparam>
+<Line value="Activity1.docx" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5104" id="1179" >
 <cdparam x="268" y="141" />
 <sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="Receive signal" value="getCoin(x)" />
-<TGConnectingPoint num="0" id="1051" />
-<TGConnectingPoint num="1" id="1052" />
-<TGConnectingPoint num="2" id="1053" />
-<TGConnectingPoint num="3" id="1054" />
-<TGConnectingPoint num="4" id="1055" />
-<TGConnectingPoint num="5" id="1056" />
-<TGConnectingPoint num="6" id="1057" />
-<TGConnectingPoint num="7" id="1058" />
-<TGConnectingPoint num="8" id="1059" />
-<TGConnectingPoint num="9" id="1060" />
+<TGConnectingPoint num="0" id="1169" />
+<TGConnectingPoint num="1" id="1170" />
+<TGConnectingPoint num="2" id="1171" />
+<TGConnectingPoint num="3" id="1172" />
+<TGConnectingPoint num="4" id="1173" />
+<TGConnectingPoint num="5" id="1174" />
+<TGConnectingPoint num="6" id="1175" />
+<TGConnectingPoint num="7" id="1176" />
+<TGConnectingPoint num="8" id="1177" />
+<TGConnectingPoint num="9" id="1178" />
 </COMPONENT>
 
-<COMPONENT type="5103" id="1072" >
+<COMPONENT type="5103" id="1190" >
 <cdparam x="634" y="321" />
 <sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
-<TGConnectingPoint num="0" id="1062" />
-<TGConnectingPoint num="1" id="1063" />
-<TGConnectingPoint num="2" id="1064" />
-<TGConnectingPoint num="3" id="1065" />
-<TGConnectingPoint num="4" id="1066" />
-<TGConnectingPoint num="5" id="1067" />
-<TGConnectingPoint num="6" id="1068" />
-<TGConnectingPoint num="7" id="1069" />
-<TGConnectingPoint num="8" id="1070" />
-<TGConnectingPoint num="9" id="1071" />
+<TGConnectingPoint num="0" id="1180" />
+<TGConnectingPoint num="1" id="1181" />
+<TGConnectingPoint num="2" id="1182" />
+<TGConnectingPoint num="3" id="1183" />
+<TGConnectingPoint num="4" id="1184" />
+<TGConnectingPoint num="5" id="1185" />
+<TGConnectingPoint num="6" id="1186" />
+<TGConnectingPoint num="7" id="1187" />
+<TGConnectingPoint num="8" id="1188" />
+<TGConnectingPoint num="9" id="1189" />
 </COMPONENT>
 
-<COMPONENT type="5104" id="1083" >
+<COMPONENT type="5104" id="1201" >
 <cdparam x="239" y="280" />
 <sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="Receive signal" value="getCoin(x)" />
-<TGConnectingPoint num="0" id="1073" />
-<TGConnectingPoint num="1" id="1074" />
-<TGConnectingPoint num="2" id="1075" />
-<TGConnectingPoint num="3" id="1076" />
-<TGConnectingPoint num="4" id="1077" />
-<TGConnectingPoint num="5" id="1078" />
-<TGConnectingPoint num="6" id="1079" />
-<TGConnectingPoint num="7" id="1080" />
-<TGConnectingPoint num="8" id="1081" />
-<TGConnectingPoint num="9" id="1082" />
+<TGConnectingPoint num="0" id="1191" />
+<TGConnectingPoint num="1" id="1192" />
+<TGConnectingPoint num="2" id="1193" />
+<TGConnectingPoint num="3" id="1194" />
+<TGConnectingPoint num="4" id="1195" />
+<TGConnectingPoint num="5" id="1196" />
+<TGConnectingPoint num="6" id="1197" />
+<TGConnectingPoint num="7" id="1198" />
+<TGConnectingPoint num="8" id="1199" />
+<TGConnectingPoint num="9" id="1200" />
 <accessibility />
 </COMPONENT>
 
-<COMPONENT type="5106" id="1124" >
+<COMPONENT type="5106" id="1242" >
 <cdparam x="649" y="239" />
 <sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="state0" value="ejectState" />
-<TGConnectingPoint num="0" id="1084" />
-<TGConnectingPoint num="1" id="1085" />
-<TGConnectingPoint num="2" id="1086" />
-<TGConnectingPoint num="3" id="1087" />
-<TGConnectingPoint num="4" id="1088" />
-<TGConnectingPoint num="5" id="1089" />
-<TGConnectingPoint num="6" id="1090" />
-<TGConnectingPoint num="7" id="1091" />
-<TGConnectingPoint num="8" id="1092" />
-<TGConnectingPoint num="9" id="1093" />
-<TGConnectingPoint num="10" id="1094" />
-<TGConnectingPoint num="11" id="1095" />
-<TGConnectingPoint num="12" id="1096" />
-<TGConnectingPoint num="13" id="1097" />
-<TGConnectingPoint num="14" id="1098" />
-<TGConnectingPoint num="15" id="1099" />
-<TGConnectingPoint num="16" id="1100" />
-<TGConnectingPoint num="17" id="1101" />
-<TGConnectingPoint num="18" id="1102" />
-<TGConnectingPoint num="19" id="1103" />
-<TGConnectingPoint num="20" id="1104" />
-<TGConnectingPoint num="21" id="1105" />
-<TGConnectingPoint num="22" id="1106" />
-<TGConnectingPoint num="23" id="1107" />
-<TGConnectingPoint num="24" id="1108" />
-<TGConnectingPoint num="25" id="1109" />
-<TGConnectingPoint num="26" id="1110" />
-<TGConnectingPoint num="27" id="1111" />
-<TGConnectingPoint num="28" id="1112" />
-<TGConnectingPoint num="29" id="1113" />
-<TGConnectingPoint num="30" id="1114" />
-<TGConnectingPoint num="31" id="1115" />
-<TGConnectingPoint num="32" id="1116" />
-<TGConnectingPoint num="33" id="1117" />
-<TGConnectingPoint num="34" id="1118" />
-<TGConnectingPoint num="35" id="1119" />
-<TGConnectingPoint num="36" id="1120" />
-<TGConnectingPoint num="37" id="1121" />
-<TGConnectingPoint num="38" id="1122" />
-<TGConnectingPoint num="39" id="1123" />
+<TGConnectingPoint num="0" id="1202" />
+<TGConnectingPoint num="1" id="1203" />
+<TGConnectingPoint num="2" id="1204" />
+<TGConnectingPoint num="3" id="1205" />
+<TGConnectingPoint num="4" id="1206" />
+<TGConnectingPoint num="5" id="1207" />
+<TGConnectingPoint num="6" id="1208" />
+<TGConnectingPoint num="7" id="1209" />
+<TGConnectingPoint num="8" id="1210" />
+<TGConnectingPoint num="9" id="1211" />
+<TGConnectingPoint num="10" id="1212" />
+<TGConnectingPoint num="11" id="1213" />
+<TGConnectingPoint num="12" id="1214" />
+<TGConnectingPoint num="13" id="1215" />
+<TGConnectingPoint num="14" id="1216" />
+<TGConnectingPoint num="15" id="1217" />
+<TGConnectingPoint num="16" id="1218" />
+<TGConnectingPoint num="17" id="1219" />
+<TGConnectingPoint num="18" id="1220" />
+<TGConnectingPoint num="19" id="1221" />
+<TGConnectingPoint num="20" id="1222" />
+<TGConnectingPoint num="21" id="1223" />
+<TGConnectingPoint num="22" id="1224" />
+<TGConnectingPoint num="23" id="1225" />
+<TGConnectingPoint num="24" id="1226" />
+<TGConnectingPoint num="25" id="1227" />
+<TGConnectingPoint num="26" id="1228" />
+<TGConnectingPoint num="27" id="1229" />
+<TGConnectingPoint num="28" id="1230" />
+<TGConnectingPoint num="29" id="1231" />
+<TGConnectingPoint num="30" id="1232" />
+<TGConnectingPoint num="31" id="1233" />
+<TGConnectingPoint num="32" id="1234" />
+<TGConnectingPoint num="33" id="1235" />
+<TGConnectingPoint num="34" id="1236" />
+<TGConnectingPoint num="35" id="1237" />
+<TGConnectingPoint num="36" id="1238" />
+<TGConnectingPoint num="37" id="1239" />
+<TGConnectingPoint num="38" id="1240" />
+<TGConnectingPoint num="39" id="1241" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1165" >
+<COMPONENT type="5106" id="1283" >
 <cdparam x="231" y="188" />
 <sizeparam width="157" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="state0" value="WaitingForSecondCoin" />
-<TGConnectingPoint num="0" id="1125" />
-<TGConnectingPoint num="1" id="1126" />
-<TGConnectingPoint num="2" id="1127" />
-<TGConnectingPoint num="3" id="1128" />
-<TGConnectingPoint num="4" id="1129" />
-<TGConnectingPoint num="5" id="1130" />
-<TGConnectingPoint num="6" id="1131" />
-<TGConnectingPoint num="7" id="1132" />
-<TGConnectingPoint num="8" id="1133" />
-<TGConnectingPoint num="9" id="1134" />
-<TGConnectingPoint num="10" id="1135" />
-<TGConnectingPoint num="11" id="1136" />
-<TGConnectingPoint num="12" id="1137" />
-<TGConnectingPoint num="13" id="1138" />
-<TGConnectingPoint num="14" id="1139" />
-<TGConnectingPoint num="15" id="1140" />
-<TGConnectingPoint num="16" id="1141" />
-<TGConnectingPoint num="17" id="1142" />
-<TGConnectingPoint num="18" id="1143" />
-<TGConnectingPoint num="19" id="1144" />
-<TGConnectingPoint num="20" id="1145" />
-<TGConnectingPoint num="21" id="1146" />
-<TGConnectingPoint num="22" id="1147" />
-<TGConnectingPoint num="23" id="1148" />
-<TGConnectingPoint num="24" id="1149" />
-<TGConnectingPoint num="25" id="1150" />
-<TGConnectingPoint num="26" id="1151" />
-<TGConnectingPoint num="27" id="1152" />
-<TGConnectingPoint num="28" id="1153" />
-<TGConnectingPoint num="29" id="1154" />
-<TGConnectingPoint num="30" id="1155" />
-<TGConnectingPoint num="31" id="1156" />
-<TGConnectingPoint num="32" id="1157" />
-<TGConnectingPoint num="33" id="1158" />
-<TGConnectingPoint num="34" id="1159" />
-<TGConnectingPoint num="35" id="1160" />
-<TGConnectingPoint num="36" id="1161" />
-<TGConnectingPoint num="37" id="1162" />
-<TGConnectingPoint num="38" id="1163" />
-<TGConnectingPoint num="39" id="1164" />
+<TGConnectingPoint num="0" id="1243" />
+<TGConnectingPoint num="1" id="1244" />
+<TGConnectingPoint num="2" id="1245" />
+<TGConnectingPoint num="3" id="1246" />
+<TGConnectingPoint num="4" id="1247" />
+<TGConnectingPoint num="5" id="1248" />
+<TGConnectingPoint num="6" id="1249" />
+<TGConnectingPoint num="7" id="1250" />
+<TGConnectingPoint num="8" id="1251" />
+<TGConnectingPoint num="9" id="1252" />
+<TGConnectingPoint num="10" id="1253" />
+<TGConnectingPoint num="11" id="1254" />
+<TGConnectingPoint num="12" id="1255" />
+<TGConnectingPoint num="13" id="1256" />
+<TGConnectingPoint num="14" id="1257" />
+<TGConnectingPoint num="15" id="1258" />
+<TGConnectingPoint num="16" id="1259" />
+<TGConnectingPoint num="17" id="1260" />
+<TGConnectingPoint num="18" id="1261" />
+<TGConnectingPoint num="19" id="1262" />
+<TGConnectingPoint num="20" id="1263" />
+<TGConnectingPoint num="21" id="1264" />
+<TGConnectingPoint num="22" id="1265" />
+<TGConnectingPoint num="23" id="1266" />
+<TGConnectingPoint num="24" id="1267" />
+<TGConnectingPoint num="25" id="1268" />
+<TGConnectingPoint num="26" id="1269" />
+<TGConnectingPoint num="27" id="1270" />
+<TGConnectingPoint num="28" id="1271" />
+<TGConnectingPoint num="29" id="1272" />
+<TGConnectingPoint num="30" id="1273" />
+<TGConnectingPoint num="31" id="1274" />
+<TGConnectingPoint num="32" id="1275" />
+<TGConnectingPoint num="33" id="1276" />
+<TGConnectingPoint num="34" id="1277" />
+<TGConnectingPoint num="35" id="1278" />
+<TGConnectingPoint num="36" id="1279" />
+<TGConnectingPoint num="37" id="1280" />
+<TGConnectingPoint num="38" id="1281" />
+<TGConnectingPoint num="39" id="1282" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="1167" >
+<COMPONENT type="5100" id="1285" >
 <cdparam x="296" y="20" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1166" />
+<TGConnectingPoint num="0" id="1284" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="1208" >
-<cdparam x="235" y="63" />
-<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="1326" >
+<cdparam x="192" y="62" />
+<sizeparam width="220" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="state0" value="WaitingForFirstCoin" />
-<TGConnectingPoint num="0" id="1168" />
-<TGConnectingPoint num="1" id="1169" />
-<TGConnectingPoint num="2" id="1170" />
-<TGConnectingPoint num="3" id="1171" />
-<TGConnectingPoint num="4" id="1172" />
-<TGConnectingPoint num="5" id="1173" />
-<TGConnectingPoint num="6" id="1174" />
-<TGConnectingPoint num="7" id="1175" />
-<TGConnectingPoint num="8" id="1176" />
-<TGConnectingPoint num="9" id="1177" />
-<TGConnectingPoint num="10" id="1178" />
-<TGConnectingPoint num="11" id="1179" />
-<TGConnectingPoint num="12" id="1180" />
-<TGConnectingPoint num="13" id="1181" />
-<TGConnectingPoint num="14" id="1182" />
-<TGConnectingPoint num="15" id="1183" />
-<TGConnectingPoint num="16" id="1184" />
-<TGConnectingPoint num="17" id="1185" />
-<TGConnectingPoint num="18" id="1186" />
-<TGConnectingPoint num="19" id="1187" />
-<TGConnectingPoint num="20" id="1188" />
-<TGConnectingPoint num="21" id="1189" />
-<TGConnectingPoint num="22" id="1190" />
-<TGConnectingPoint num="23" id="1191" />
-<TGConnectingPoint num="24" id="1192" />
-<TGConnectingPoint num="25" id="1193" />
-<TGConnectingPoint num="26" id="1194" />
-<TGConnectingPoint num="27" id="1195" />
-<TGConnectingPoint num="28" id="1196" />
-<TGConnectingPoint num="29" id="1197" />
-<TGConnectingPoint num="30" id="1198" />
-<TGConnectingPoint num="31" id="1199" />
-<TGConnectingPoint num="32" id="1200" />
-<TGConnectingPoint num="33" id="1201" />
-<TGConnectingPoint num="34" id="1202" />
-<TGConnectingPoint num="35" id="1203" />
-<TGConnectingPoint num="36" id="1204" />
-<TGConnectingPoint num="37" id="1205" />
-<TGConnectingPoint num="38" id="1206" />
-<TGConnectingPoint num="39" id="1207" />
+<TGConnectingPoint num="0" id="1286" />
+<TGConnectingPoint num="1" id="1287" />
+<TGConnectingPoint num="2" id="1288" />
+<TGConnectingPoint num="3" id="1289" />
+<TGConnectingPoint num="4" id="1290" />
+<TGConnectingPoint num="5" id="1291" />
+<TGConnectingPoint num="6" id="1292" />
+<TGConnectingPoint num="7" id="1293" />
+<TGConnectingPoint num="8" id="1294" />
+<TGConnectingPoint num="9" id="1295" />
+<TGConnectingPoint num="10" id="1296" />
+<TGConnectingPoint num="11" id="1297" />
+<TGConnectingPoint num="12" id="1298" />
+<TGConnectingPoint num="13" id="1299" />
+<TGConnectingPoint num="14" id="1300" />
+<TGConnectingPoint num="15" id="1301" />
+<TGConnectingPoint num="16" id="1302" />
+<TGConnectingPoint num="17" id="1303" />
+<TGConnectingPoint num="18" id="1304" />
+<TGConnectingPoint num="19" id="1305" />
+<TGConnectingPoint num="20" id="1306" />
+<TGConnectingPoint num="21" id="1307" />
+<TGConnectingPoint num="22" id="1308" />
+<TGConnectingPoint num="23" id="1309" />
+<TGConnectingPoint num="24" id="1310" />
+<TGConnectingPoint num="25" id="1311" />
+<TGConnectingPoint num="26" id="1312" />
+<TGConnectingPoint num="27" id="1313" />
+<TGConnectingPoint num="28" id="1314" />
+<TGConnectingPoint num="29" id="1315" />
+<TGConnectingPoint num="30" id="1316" />
+<TGConnectingPoint num="31" id="1317" />
+<TGConnectingPoint num="32" id="1318" />
+<TGConnectingPoint num="33" id="1319" />
+<TGConnectingPoint num="34" id="1320" />
+<TGConnectingPoint num="35" id="1321" />
+<TGConnectingPoint num="36" id="1322" />
+<TGConnectingPoint num="37" id="1323" />
+<TGConnectingPoint num="38" id="1324" />
+<TGConnectingPoint num="39" id="1325" />
+<latencyCheck />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1249" >
+<COMPONENT type="5106" id="1367" >
 <cdparam x="221" y="748" />
 <sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="state0" value="WaitingForFirstCoin" />
-<TGConnectingPoint num="0" id="1209" />
-<TGConnectingPoint num="1" id="1210" />
-<TGConnectingPoint num="2" id="1211" />
-<TGConnectingPoint num="3" id="1212" />
-<TGConnectingPoint num="4" id="1213" />
-<TGConnectingPoint num="5" id="1214" />
-<TGConnectingPoint num="6" id="1215" />
-<TGConnectingPoint num="7" id="1216" />
-<TGConnectingPoint num="8" id="1217" />
-<TGConnectingPoint num="9" id="1218" />
-<TGConnectingPoint num="10" id="1219" />
-<TGConnectingPoint num="11" id="1220" />
-<TGConnectingPoint num="12" id="1221" />
-<TGConnectingPoint num="13" id="1222" />
-<TGConnectingPoint num="14" id="1223" />
-<TGConnectingPoint num="15" id="1224" />
-<TGConnectingPoint num="16" id="1225" />
-<TGConnectingPoint num="17" id="1226" />
-<TGConnectingPoint num="18" id="1227" />
-<TGConnectingPoint num="19" id="1228" />
-<TGConnectingPoint num="20" id="1229" />
-<TGConnectingPoint num="21" id="1230" />
-<TGConnectingPoint num="22" id="1231" />
-<TGConnectingPoint num="23" id="1232" />
-<TGConnectingPoint num="24" id="1233" />
-<TGConnectingPoint num="25" id="1234" />
-<TGConnectingPoint num="26" id="1235" />
-<TGConnectingPoint num="27" id="1236" />
-<TGConnectingPoint num="28" id="1237" />
-<TGConnectingPoint num="29" id="1238" />
-<TGConnectingPoint num="30" id="1239" />
-<TGConnectingPoint num="31" id="1240" />
-<TGConnectingPoint num="32" id="1241" />
-<TGConnectingPoint num="33" id="1242" />
-<TGConnectingPoint num="34" id="1243" />
-<TGConnectingPoint num="35" id="1244" />
-<TGConnectingPoint num="36" id="1245" />
-<TGConnectingPoint num="37" id="1246" />
-<TGConnectingPoint num="38" id="1247" />
-<TGConnectingPoint num="39" id="1248" />
+<TGConnectingPoint num="0" id="1327" />
+<TGConnectingPoint num="1" id="1328" />
+<TGConnectingPoint num="2" id="1329" />
+<TGConnectingPoint num="3" id="1330" />
+<TGConnectingPoint num="4" id="1331" />
+<TGConnectingPoint num="5" id="1332" />
+<TGConnectingPoint num="6" id="1333" />
+<TGConnectingPoint num="7" id="1334" />
+<TGConnectingPoint num="8" id="1335" />
+<TGConnectingPoint num="9" id="1336" />
+<TGConnectingPoint num="10" id="1337" />
+<TGConnectingPoint num="11" id="1338" />
+<TGConnectingPoint num="12" id="1339" />
+<TGConnectingPoint num="13" id="1340" />
+<TGConnectingPoint num="14" id="1341" />
+<TGConnectingPoint num="15" id="1342" />
+<TGConnectingPoint num="16" id="1343" />
+<TGConnectingPoint num="17" id="1344" />
+<TGConnectingPoint num="18" id="1345" />
+<TGConnectingPoint num="19" id="1346" />
+<TGConnectingPoint num="20" id="1347" />
+<TGConnectingPoint num="21" id="1348" />
+<TGConnectingPoint num="22" id="1349" />
+<TGConnectingPoint num="23" id="1350" />
+<TGConnectingPoint num="24" id="1351" />
+<TGConnectingPoint num="25" id="1352" />
+<TGConnectingPoint num="26" id="1353" />
+<TGConnectingPoint num="27" id="1354" />
+<TGConnectingPoint num="28" id="1355" />
+<TGConnectingPoint num="29" id="1356" />
+<TGConnectingPoint num="30" id="1357" />
+<TGConnectingPoint num="31" id="1358" />
+<TGConnectingPoint num="32" id="1359" />
+<TGConnectingPoint num="33" id="1360" />
+<TGConnectingPoint num="34" id="1361" />
+<TGConnectingPoint num="35" id="1362" />
+<TGConnectingPoint num="36" id="1363" />
+<TGConnectingPoint num="37" id="1364" />
+<TGConnectingPoint num="38" id="1365" />
+<TGConnectingPoint num="39" id="1366" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1290" >
+<COMPONENT type="5106" id="1408" >
 <cdparam x="631" y="381" />
 <sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="state0" value="WaitingForFirstCoin" />
-<TGConnectingPoint num="0" id="1250" />
-<TGConnectingPoint num="1" id="1251" />
-<TGConnectingPoint num="2" id="1252" />
-<TGConnectingPoint num="3" id="1253" />
-<TGConnectingPoint num="4" id="1254" />
-<TGConnectingPoint num="5" id="1255" />
-<TGConnectingPoint num="6" id="1256" />
-<TGConnectingPoint num="7" id="1257" />
-<TGConnectingPoint num="8" id="1258" />
-<TGConnectingPoint num="9" id="1259" />
-<TGConnectingPoint num="10" id="1260" />
-<TGConnectingPoint num="11" id="1261" />
-<TGConnectingPoint num="12" id="1262" />
-<TGConnectingPoint num="13" id="1263" />
-<TGConnectingPoint num="14" id="1264" />
-<TGConnectingPoint num="15" id="1265" />
-<TGConnectingPoint num="16" id="1266" />
-<TGConnectingPoint num="17" id="1267" />
-<TGConnectingPoint num="18" id="1268" />
-<TGConnectingPoint num="19" id="1269" />
-<TGConnectingPoint num="20" id="1270" />
-<TGConnectingPoint num="21" id="1271" />
-<TGConnectingPoint num="22" id="1272" />
-<TGConnectingPoint num="23" id="1273" />
-<TGConnectingPoint num="24" id="1274" />
-<TGConnectingPoint num="25" id="1275" />
-<TGConnectingPoint num="26" id="1276" />
-<TGConnectingPoint num="27" id="1277" />
-<TGConnectingPoint num="28" id="1278" />
-<TGConnectingPoint num="29" id="1279" />
-<TGConnectingPoint num="30" id="1280" />
-<TGConnectingPoint num="31" id="1281" />
-<TGConnectingPoint num="32" id="1282" />
-<TGConnectingPoint num="33" id="1283" />
-<TGConnectingPoint num="34" id="1284" />
-<TGConnectingPoint num="35" id="1285" />
-<TGConnectingPoint num="36" id="1286" />
-<TGConnectingPoint num="37" id="1287" />
-<TGConnectingPoint num="38" id="1288" />
-<TGConnectingPoint num="39" id="1289" />
+<TGConnectingPoint num="0" id="1368" />
+<TGConnectingPoint num="1" id="1369" />
+<TGConnectingPoint num="2" id="1370" />
+<TGConnectingPoint num="3" id="1371" />
+<TGConnectingPoint num="4" id="1372" />
+<TGConnectingPoint num="5" id="1373" />
+<TGConnectingPoint num="6" id="1374" />
+<TGConnectingPoint num="7" id="1375" />
+<TGConnectingPoint num="8" id="1376" />
+<TGConnectingPoint num="9" id="1377" />
+<TGConnectingPoint num="10" id="1378" />
+<TGConnectingPoint num="11" id="1379" />
+<TGConnectingPoint num="12" id="1380" />
+<TGConnectingPoint num="13" id="1381" />
+<TGConnectingPoint num="14" id="1382" />
+<TGConnectingPoint num="15" id="1383" />
+<TGConnectingPoint num="16" id="1384" />
+<TGConnectingPoint num="17" id="1385" />
+<TGConnectingPoint num="18" id="1386" />
+<TGConnectingPoint num="19" id="1387" />
+<TGConnectingPoint num="20" id="1388" />
+<TGConnectingPoint num="21" id="1389" />
+<TGConnectingPoint num="22" id="1390" />
+<TGConnectingPoint num="23" id="1391" />
+<TGConnectingPoint num="24" id="1392" />
+<TGConnectingPoint num="25" id="1393" />
+<TGConnectingPoint num="26" id="1394" />
+<TGConnectingPoint num="27" id="1395" />
+<TGConnectingPoint num="28" id="1396" />
+<TGConnectingPoint num="29" id="1397" />
+<TGConnectingPoint num="30" id="1398" />
+<TGConnectingPoint num="31" id="1399" />
+<TGConnectingPoint num="32" id="1400" />
+<TGConnectingPoint num="33" id="1401" />
+<TGConnectingPoint num="34" id="1402" />
+<TGConnectingPoint num="35" id="1403" />
+<TGConnectingPoint num="36" id="1404" />
+<TGConnectingPoint num="37" id="1405" />
+<TGConnectingPoint num="38" id="1406" />
+<TGConnectingPoint num="39" id="1407" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1407" >
-<cdparam x="18" y="370" />
+<COMPONENT type="5106" id="1525" >
+<cdparam x="23" y="372" />
 <sizeparam width="577" height="354" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
 <infoparam name="state0" value="Beverage" />
-<TGConnectingPoint num="0" id="1367" />
-<TGConnectingPoint num="1" id="1368" />
-<TGConnectingPoint num="2" id="1369" />
-<TGConnectingPoint num="3" id="1370" />
-<TGConnectingPoint num="4" id="1371" />
-<TGConnectingPoint num="5" id="1372" />
-<TGConnectingPoint num="6" id="1373" />
-<TGConnectingPoint num="7" id="1374" />
-<TGConnectingPoint num="8" id="1375" />
-<TGConnectingPoint num="9" id="1376" />
-<TGConnectingPoint num="10" id="1377" />
-<TGConnectingPoint num="11" id="1378" />
-<TGConnectingPoint num="12" id="1379" />
-<TGConnectingPoint num="13" id="1380" />
-<TGConnectingPoint num="14" id="1381" />
-<TGConnectingPoint num="15" id="1382" />
-<TGConnectingPoint num="16" id="1383" />
-<TGConnectingPoint num="17" id="1384" />
-<TGConnectingPoint num="18" id="1385" />
-<TGConnectingPoint num="19" id="1386" />
-<TGConnectingPoint num="20" id="1387" />
-<TGConnectingPoint num="21" id="1388" />
-<TGConnectingPoint num="22" id="1389" />
-<TGConnectingPoint num="23" id="1390" />
-<TGConnectingPoint num="24" id="1391" />
-<TGConnectingPoint num="25" id="1392" />
-<TGConnectingPoint num="26" id="1393" />
-<TGConnectingPoint num="27" id="1394" />
-<TGConnectingPoint num="28" id="1395" />
-<TGConnectingPoint num="29" id="1396" />
-<TGConnectingPoint num="30" id="1397" />
-<TGConnectingPoint num="31" id="1398" />
-<TGConnectingPoint num="32" id="1399" />
-<TGConnectingPoint num="33" id="1400" />
-<TGConnectingPoint num="34" id="1401" />
-<TGConnectingPoint num="35" id="1402" />
-<TGConnectingPoint num="36" id="1403" />
-<TGConnectingPoint num="37" id="1404" />
-<TGConnectingPoint num="38" id="1405" />
-<TGConnectingPoint num="39" id="1406" />
+<TGConnectingPoint num="0" id="1485" />
+<TGConnectingPoint num="1" id="1486" />
+<TGConnectingPoint num="2" id="1487" />
+<TGConnectingPoint num="3" id="1488" />
+<TGConnectingPoint num="4" id="1489" />
+<TGConnectingPoint num="5" id="1490" />
+<TGConnectingPoint num="6" id="1491" />
+<TGConnectingPoint num="7" id="1492" />
+<TGConnectingPoint num="8" id="1493" />
+<TGConnectingPoint num="9" id="1494" />
+<TGConnectingPoint num="10" id="1495" />
+<TGConnectingPoint num="11" id="1496" />
+<TGConnectingPoint num="12" id="1497" />
+<TGConnectingPoint num="13" id="1498" />
+<TGConnectingPoint num="14" id="1499" />
+<TGConnectingPoint num="15" id="1500" />
+<TGConnectingPoint num="16" id="1501" />
+<TGConnectingPoint num="17" id="1502" />
+<TGConnectingPoint num="18" id="1503" />
+<TGConnectingPoint num="19" id="1504" />
+<TGConnectingPoint num="20" id="1505" />
+<TGConnectingPoint num="21" id="1506" />
+<TGConnectingPoint num="22" id="1507" />
+<TGConnectingPoint num="23" id="1508" />
+<TGConnectingPoint num="24" id="1509" />
+<TGConnectingPoint num="25" id="1510" />
+<TGConnectingPoint num="26" id="1511" />
+<TGConnectingPoint num="27" id="1512" />
+<TGConnectingPoint num="28" id="1513" />
+<TGConnectingPoint num="29" id="1514" />
+<TGConnectingPoint num="30" id="1515" />
+<TGConnectingPoint num="31" id="1516" />
+<TGConnectingPoint num="32" id="1517" />
+<TGConnectingPoint num="33" id="1518" />
+<TGConnectingPoint num="34" id="1519" />
+<TGConnectingPoint num="35" id="1520" />
+<TGConnectingPoint num="36" id="1521" />
+<TGConnectingPoint num="37" id="1522" />
+<TGConnectingPoint num="38" id="1523" />
+<TGConnectingPoint num="39" id="1524" />
 <extraparam>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5103" id="1301" >
-<father id="1407" num="0" />
-<cdparam x="372" y="500" />
+<SUBCOMPONENT type="5103" id="1419" >
+<father id="1525" num="0" />
+<cdparam x="377" y="502" />
 <sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
 <infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
-<TGConnectingPoint num="0" id="1291" />
-<TGConnectingPoint num="1" id="1292" />
-<TGConnectingPoint num="2" id="1293" />
-<TGConnectingPoint num="3" id="1294" />
-<TGConnectingPoint num="4" id="1295" />
-<TGConnectingPoint num="5" id="1296" />
-<TGConnectingPoint num="6" id="1297" />
-<TGConnectingPoint num="7" id="1298" />
-<TGConnectingPoint num="8" id="1299" />
-<TGConnectingPoint num="9" id="1300" />
+<TGConnectingPoint num="0" id="1409" />
+<TGConnectingPoint num="1" id="1410" />
+<TGConnectingPoint num="2" id="1411" />
+<TGConnectingPoint num="3" id="1412" />
+<TGConnectingPoint num="4" id="1413" />
+<TGConnectingPoint num="5" id="1414" />
+<TGConnectingPoint num="6" id="1415" />
+<TGConnectingPoint num="7" id="1416" />
+<TGConnectingPoint num="8" id="1417" />
+<TGConnectingPoint num="9" id="1418" />
 <accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="1312" >
-<father id="1407" num="1" />
-<cdparam x="58" y="527" />
+<SUBCOMPONENT type="5104" id="1430" >
+<father id="1525" num="1" />
+<cdparam x="63" y="529" />
 <sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
 <infoparam name="Send signal" value="pushCoffeeButton()" />
-<TGConnectingPoint num="0" id="1302" />
-<TGConnectingPoint num="1" id="1303" />
-<TGConnectingPoint num="2" id="1304" />
-<TGConnectingPoint num="3" id="1305" />
-<TGConnectingPoint num="4" id="1306" />
-<TGConnectingPoint num="5" id="1307" />
-<TGConnectingPoint num="6" id="1308" />
-<TGConnectingPoint num="7" id="1309" />
-<TGConnectingPoint num="8" id="1310" />
-<TGConnectingPoint num="9" id="1311" />
+<TGConnectingPoint num="0" id="1420" />
+<TGConnectingPoint num="1" id="1421" />
+<TGConnectingPoint num="2" id="1422" />
+<TGConnectingPoint num="3" id="1423" />
+<TGConnectingPoint num="4" id="1424" />
+<TGConnectingPoint num="5" id="1425" />
+<TGConnectingPoint num="6" id="1426" />
+<TGConnectingPoint num="7" id="1427" />
+<TGConnectingPoint num="8" id="1428" />
+<TGConnectingPoint num="9" id="1429" />
 <accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="1314" >
-<father id="1407" num="2" />
-<cdparam x="249" y="399" />
+<SUBCOMPONENT type="5100" id="1432" >
+<father id="1525" num="2" />
+<cdparam x="254" y="401" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1313" />
+<TGConnectingPoint num="0" id="1431" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="1355" >
-<father id="1407" num="3" />
-<cdparam x="189" y="435" />
+<SUBCOMPONENT type="5106" id="1473" >
+<father id="1525" num="3" />
+<cdparam x="194" y="437" />
 <sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
 <infoparam name="state0" value="WaitingForSelection" />
-<TGConnectingPoint num="0" id="1315" />
-<TGConnectingPoint num="1" id="1316" />
-<TGConnectingPoint num="2" id="1317" />
-<TGConnectingPoint num="3" id="1318" />
-<TGConnectingPoint num="4" id="1319" />
-<TGConnectingPoint num="5" id="1320" />
-<TGConnectingPoint num="6" id="1321" />
-<TGConnectingPoint num="7" id="1322" />
-<TGConnectingPoint num="8" id="1323" />
-<TGConnectingPoint num="9" id="1324" />
-<TGConnectingPoint num="10" id="1325" />
-<TGConnectingPoint num="11" id="1326" />
-<TGConnectingPoint num="12" id="1327" />
-<TGConnectingPoint num="13" id="1328" />
-<TGConnectingPoint num="14" id="1329" />
-<TGConnectingPoint num="15" id="1330" />
-<TGConnectingPoint num="16" id="1331" />
-<TGConnectingPoint num="17" id="1332" />
-<TGConnectingPoint num="18" id="1333" />
-<TGConnectingPoint num="19" id="1334" />
-<TGConnectingPoint num="20" id="1335" />
-<TGConnectingPoint num="21" id="1336" />
-<TGConnectingPoint num="22" id="1337" />
-<TGConnectingPoint num="23" id="1338" />
-<TGConnectingPoint num="24" id="1339" />
-<TGConnectingPoint num="25" id="1340" />
-<TGConnectingPoint num="26" id="1341" />
-<TGConnectingPoint num="27" id="1342" />
-<TGConnectingPoint num="28" id="1343" />
-<TGConnectingPoint num="29" id="1344" />
-<TGConnectingPoint num="30" id="1345" />
-<TGConnectingPoint num="31" id="1346" />
-<TGConnectingPoint num="32" id="1347" />
-<TGConnectingPoint num="33" id="1348" />
-<TGConnectingPoint num="34" id="1349" />
-<TGConnectingPoint num="35" id="1350" />
-<TGConnectingPoint num="36" id="1351" />
-<TGConnectingPoint num="37" id="1352" />
-<TGConnectingPoint num="38" id="1353" />
-<TGConnectingPoint num="39" id="1354" />
+<TGConnectingPoint num="0" id="1433" />
+<TGConnectingPoint num="1" id="1434" />
+<TGConnectingPoint num="2" id="1435" />
+<TGConnectingPoint num="3" id="1436" />
+<TGConnectingPoint num="4" id="1437" />
+<TGConnectingPoint num="5" id="1438" />
+<TGConnectingPoint num="6" id="1439" />
+<TGConnectingPoint num="7" id="1440" />
+<TGConnectingPoint num="8" id="1441" />
+<TGConnectingPoint num="9" id="1442" />
+<TGConnectingPoint num="10" id="1443" />
+<TGConnectingPoint num="11" id="1444" />
+<TGConnectingPoint num="12" id="1445" />
+<TGConnectingPoint num="13" id="1446" />
+<TGConnectingPoint num="14" id="1447" />
+<TGConnectingPoint num="15" id="1448" />
+<TGConnectingPoint num="16" id="1449" />
+<TGConnectingPoint num="17" id="1450" />
+<TGConnectingPoint num="18" id="1451" />
+<TGConnectingPoint num="19" id="1452" />
+<TGConnectingPoint num="20" id="1453" />
+<TGConnectingPoint num="21" id="1454" />
+<TGConnectingPoint num="22" id="1455" />
+<TGConnectingPoint num="23" id="1456" />
+<TGConnectingPoint num="24" id="1457" />
+<TGConnectingPoint num="25" id="1458" />
+<TGConnectingPoint num="26" id="1459" />
+<TGConnectingPoint num="27" id="1460" />
+<TGConnectingPoint num="28" id="1461" />
+<TGConnectingPoint num="29" id="1462" />
+<TGConnectingPoint num="30" id="1463" />
+<TGConnectingPoint num="31" id="1464" />
+<TGConnectingPoint num="32" id="1465" />
+<TGConnectingPoint num="33" id="1466" />
+<TGConnectingPoint num="34" id="1467" />
+<TGConnectingPoint num="35" id="1468" />
+<TGConnectingPoint num="36" id="1469" />
+<TGConnectingPoint num="37" id="1470" />
+<TGConnectingPoint num="38" id="1471" />
+<TGConnectingPoint num="39" id="1472" />
+<latencyCheck />
 <extraparam>
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="1366" >
-<father id="1407" num="4" />
-<cdparam x="237" y="527" />
+<SUBCOMPONENT type="5104" id="1484" >
+<father id="1525" num="4" />
+<cdparam x="242" y="529" />
 <sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
 <infoparam name="Send signal" value="pushTeaButton()" />
-<TGConnectingPoint num="0" id="1356" />
-<TGConnectingPoint num="1" id="1357" />
-<TGConnectingPoint num="2" id="1358" />
-<TGConnectingPoint num="3" id="1359" />
-<TGConnectingPoint num="4" id="1360" />
-<TGConnectingPoint num="5" id="1361" />
-<TGConnectingPoint num="6" id="1362" />
-<TGConnectingPoint num="7" id="1363" />
-<TGConnectingPoint num="8" id="1364" />
-<TGConnectingPoint num="9" id="1365" />
+<TGConnectingPoint num="0" id="1474" />
+<TGConnectingPoint num="1" id="1475" />
+<TGConnectingPoint num="2" id="1476" />
+<TGConnectingPoint num="3" id="1477" />
+<TGConnectingPoint num="4" id="1478" />
+<TGConnectingPoint num="5" id="1479" />
+<TGConnectingPoint num="6" id="1480" />
+<TGConnectingPoint num="7" id="1481" />
+<TGConnectingPoint num="8" id="1482" />
+<TGConnectingPoint num="9" id="1483" />
 <accessibility />
 </SUBCOMPONENT>
 
@@ -2702,25 +2805,25 @@
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="1414" >
+<CONNECTOR type="5102" id="1532" >
 <cdparam x="177" y="199" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1413" />
-<P1  x="340" y="233" id="1520" />
-<P2  x="353" y="252" id="1522" />
+<TGConnectingPoint num="0" id="1531" />
+<P1  x="340" y="233" id="1638" />
+<P2  x="353" y="252" id="1640" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1412" >
-<father id="1414" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1530" >
+<father id="1532" num="0" />
 <cdparam x="177" y="239" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1408" />
-<TGConnectingPoint num="1" id="1409" />
-<TGConnectingPoint num="2" id="1410" />
-<TGConnectingPoint num="3" id="1411" />
+<TGConnectingPoint num="0" id="1526" />
+<TGConnectingPoint num="1" id="1527" />
+<TGConnectingPoint num="2" id="1528" />
+<TGConnectingPoint num="3" id="1529" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2731,25 +2834,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1421" >
+<CONNECTOR type="5102" id="1539" >
 <cdparam x="322" y="69" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="1420" />
-<P1  x="322" y="69" id="1518" />
-<P2  x="323" y="88" id="1478" />
+<TGConnectingPoint num="0" id="1538" />
+<P1  x="322" y="69" id="1636" />
+<P2  x="323" y="88" id="1596" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1419" >
-<father id="1421" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1537" >
+<father id="1539" num="0" />
 <cdparam x="322" y="109" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1415" />
-<TGConnectingPoint num="1" id="1416" />
-<TGConnectingPoint num="2" id="1417" />
-<TGConnectingPoint num="3" id="1418" />
+<TGConnectingPoint num="0" id="1533" />
+<TGConnectingPoint num="1" id="1534" />
+<TGConnectingPoint num="2" id="1535" />
+<TGConnectingPoint num="3" id="1536" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2760,25 +2863,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1428" >
+<CONNECTOR type="5102" id="1546" >
 <cdparam x="377" y="144" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1427" />
-<P1  x="323" y="118" id="1483" />
-<P2  x="356" y="174" id="1534" />
+<TGConnectingPoint num="0" id="1545" />
+<P1  x="323" y="118" id="1601" />
+<P2  x="356" y="174" id="1652" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1426" >
-<father id="1428" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1544" >
+<father id="1546" num="0" />
 <cdparam x="377" y="184" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1422" />
-<TGConnectingPoint num="1" id="1423" />
-<TGConnectingPoint num="2" id="1424" />
-<TGConnectingPoint num="3" id="1425" />
+<TGConnectingPoint num="0" id="1540" />
+<TGConnectingPoint num="1" id="1541" />
+<TGConnectingPoint num="2" id="1542" />
+<TGConnectingPoint num="3" id="1543" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2789,25 +2892,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1435" >
+<CONNECTOR type="5102" id="1553" >
 <cdparam x="377" y="187" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="1434" />
-<P1  x="353" y="282" id="1523" />
-<P2  x="399" y="352" id="1437" />
+<TGConnectingPoint num="0" id="1552" />
+<P1  x="353" y="282" id="1641" />
+<P2  x="399" y="352" id="1555" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1433" >
-<father id="1435" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1551" >
+<father id="1553" num="0" />
 <cdparam x="417" y="335" />
-<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1429" />
-<TGConnectingPoint num="1" id="1430" />
-<TGConnectingPoint num="2" id="1431" />
-<TGConnectingPoint num="3" id="1432" />
+<TGConnectingPoint num="0" id="1547" />
+<TGConnectingPoint num="1" id="1548" />
+<TGConnectingPoint num="2" id="1549" />
+<TGConnectingPoint num="3" id="1550" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="mechanicalDelay" />
@@ -2818,215 +2921,215 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5106" id="1476" >
+<COMPONENT type="5106" id="1594" >
 <cdparam x="374" y="352" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1436" />
-<TGConnectingPoint num="1" id="1437" />
-<TGConnectingPoint num="2" id="1438" />
-<TGConnectingPoint num="3" id="1439" />
-<TGConnectingPoint num="4" id="1440" />
-<TGConnectingPoint num="5" id="1441" />
-<TGConnectingPoint num="6" id="1442" />
-<TGConnectingPoint num="7" id="1443" />
-<TGConnectingPoint num="8" id="1444" />
-<TGConnectingPoint num="9" id="1445" />
-<TGConnectingPoint num="10" id="1446" />
-<TGConnectingPoint num="11" id="1447" />
-<TGConnectingPoint num="12" id="1448" />
-<TGConnectingPoint num="13" id="1449" />
-<TGConnectingPoint num="14" id="1450" />
-<TGConnectingPoint num="15" id="1451" />
-<TGConnectingPoint num="16" id="1452" />
-<TGConnectingPoint num="17" id="1453" />
-<TGConnectingPoint num="18" id="1454" />
-<TGConnectingPoint num="19" id="1455" />
-<TGConnectingPoint num="20" id="1456" />
-<TGConnectingPoint num="21" id="1457" />
-<TGConnectingPoint num="22" id="1458" />
-<TGConnectingPoint num="23" id="1459" />
-<TGConnectingPoint num="24" id="1460" />
-<TGConnectingPoint num="25" id="1461" />
-<TGConnectingPoint num="26" id="1462" />
-<TGConnectingPoint num="27" id="1463" />
-<TGConnectingPoint num="28" id="1464" />
-<TGConnectingPoint num="29" id="1465" />
-<TGConnectingPoint num="30" id="1466" />
-<TGConnectingPoint num="31" id="1467" />
-<TGConnectingPoint num="32" id="1468" />
-<TGConnectingPoint num="33" id="1469" />
-<TGConnectingPoint num="34" id="1470" />
-<TGConnectingPoint num="35" id="1471" />
-<TGConnectingPoint num="36" id="1472" />
-<TGConnectingPoint num="37" id="1473" />
-<TGConnectingPoint num="38" id="1474" />
-<TGConnectingPoint num="39" id="1475" />
+<TGConnectingPoint num="0" id="1554" />
+<TGConnectingPoint num="1" id="1555" />
+<TGConnectingPoint num="2" id="1556" />
+<TGConnectingPoint num="3" id="1557" />
+<TGConnectingPoint num="4" id="1558" />
+<TGConnectingPoint num="5" id="1559" />
+<TGConnectingPoint num="6" id="1560" />
+<TGConnectingPoint num="7" id="1561" />
+<TGConnectingPoint num="8" id="1562" />
+<TGConnectingPoint num="9" id="1563" />
+<TGConnectingPoint num="10" id="1564" />
+<TGConnectingPoint num="11" id="1565" />
+<TGConnectingPoint num="12" id="1566" />
+<TGConnectingPoint num="13" id="1567" />
+<TGConnectingPoint num="14" id="1568" />
+<TGConnectingPoint num="15" id="1569" />
+<TGConnectingPoint num="16" id="1570" />
+<TGConnectingPoint num="17" id="1571" />
+<TGConnectingPoint num="18" id="1572" />
+<TGConnectingPoint num="19" id="1573" />
+<TGConnectingPoint num="20" id="1574" />
+<TGConnectingPoint num="21" id="1575" />
+<TGConnectingPoint num="22" id="1576" />
+<TGConnectingPoint num="23" id="1577" />
+<TGConnectingPoint num="24" id="1578" />
+<TGConnectingPoint num="25" id="1579" />
+<TGConnectingPoint num="26" id="1580" />
+<TGConnectingPoint num="27" id="1581" />
+<TGConnectingPoint num="28" id="1582" />
+<TGConnectingPoint num="29" id="1583" />
+<TGConnectingPoint num="30" id="1584" />
+<TGConnectingPoint num="31" id="1585" />
+<TGConnectingPoint num="32" id="1586" />
+<TGConnectingPoint num="33" id="1587" />
+<TGConnectingPoint num="34" id="1588" />
+<TGConnectingPoint num="35" id="1589" />
+<TGConnectingPoint num="36" id="1590" />
+<TGConnectingPoint num="37" id="1591" />
+<TGConnectingPoint num="38" id="1592" />
+<TGConnectingPoint num="39" id="1593" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1517" >
+<COMPONENT type="5106" id="1635" >
 <cdparam x="298" y="88" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1477" />
-<TGConnectingPoint num="1" id="1478" />
-<TGConnectingPoint num="2" id="1479" />
-<TGConnectingPoint num="3" id="1480" />
-<TGConnectingPoint num="4" id="1481" />
-<TGConnectingPoint num="5" id="1482" />
-<TGConnectingPoint num="6" id="1483" />
-<TGConnectingPoint num="7" id="1484" />
-<TGConnectingPoint num="8" id="1485" />
-<TGConnectingPoint num="9" id="1486" />
-<TGConnectingPoint num="10" id="1487" />
-<TGConnectingPoint num="11" id="1488" />
-<TGConnectingPoint num="12" id="1489" />
-<TGConnectingPoint num="13" id="1490" />
-<TGConnectingPoint num="14" id="1491" />
-<TGConnectingPoint num="15" id="1492" />
-<TGConnectingPoint num="16" id="1493" />
-<TGConnectingPoint num="17" id="1494" />
-<TGConnectingPoint num="18" id="1495" />
-<TGConnectingPoint num="19" id="1496" />
-<TGConnectingPoint num="20" id="1497" />
-<TGConnectingPoint num="21" id="1498" />
-<TGConnectingPoint num="22" id="1499" />
-<TGConnectingPoint num="23" id="1500" />
-<TGConnectingPoint num="24" id="1501" />
-<TGConnectingPoint num="25" id="1502" />
-<TGConnectingPoint num="26" id="1503" />
-<TGConnectingPoint num="27" id="1504" />
-<TGConnectingPoint num="28" id="1505" />
-<TGConnectingPoint num="29" id="1506" />
-<TGConnectingPoint num="30" id="1507" />
-<TGConnectingPoint num="31" id="1508" />
-<TGConnectingPoint num="32" id="1509" />
-<TGConnectingPoint num="33" id="1510" />
-<TGConnectingPoint num="34" id="1511" />
-<TGConnectingPoint num="35" id="1512" />
-<TGConnectingPoint num="36" id="1513" />
-<TGConnectingPoint num="37" id="1514" />
-<TGConnectingPoint num="38" id="1515" />
-<TGConnectingPoint num="39" id="1516" />
+<TGConnectingPoint num="0" id="1595" />
+<TGConnectingPoint num="1" id="1596" />
+<TGConnectingPoint num="2" id="1597" />
+<TGConnectingPoint num="3" id="1598" />
+<TGConnectingPoint num="4" id="1599" />
+<TGConnectingPoint num="5" id="1600" />
+<TGConnectingPoint num="6" id="1601" />
+<TGConnectingPoint num="7" id="1602" />
+<TGConnectingPoint num="8" id="1603" />
+<TGConnectingPoint num="9" id="1604" />
+<TGConnectingPoint num="10" id="1605" />
+<TGConnectingPoint num="11" id="1606" />
+<TGConnectingPoint num="12" id="1607" />
+<TGConnectingPoint num="13" id="1608" />
+<TGConnectingPoint num="14" id="1609" />
+<TGConnectingPoint num="15" id="1610" />
+<TGConnectingPoint num="16" id="1611" />
+<TGConnectingPoint num="17" id="1612" />
+<TGConnectingPoint num="18" id="1613" />
+<TGConnectingPoint num="19" id="1614" />
+<TGConnectingPoint num="20" id="1615" />
+<TGConnectingPoint num="21" id="1616" />
+<TGConnectingPoint num="22" id="1617" />
+<TGConnectingPoint num="23" id="1618" />
+<TGConnectingPoint num="24" id="1619" />
+<TGConnectingPoint num="25" id="1620" />
+<TGConnectingPoint num="26" id="1621" />
+<TGConnectingPoint num="27" id="1622" />
+<TGConnectingPoint num="28" id="1623" />
+<TGConnectingPoint num="29" id="1624" />
+<TGConnectingPoint num="30" id="1625" />
+<TGConnectingPoint num="31" id="1626" />
+<TGConnectingPoint num="32" id="1627" />
+<TGConnectingPoint num="33" id="1628" />
+<TGConnectingPoint num="34" id="1629" />
+<TGConnectingPoint num="35" id="1630" />
+<TGConnectingPoint num="36" id="1631" />
+<TGConnectingPoint num="37" id="1632" />
+<TGConnectingPoint num="38" id="1633" />
+<TGConnectingPoint num="39" id="1634" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="1519" >
+<COMPONENT type="5100" id="1637" >
 <cdparam x="315" y="49" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1518" />
+<TGConnectingPoint num="0" id="1636" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="1573" >
+<COMPONENT type="5106" id="1691" >
 <cdparam x="264" y="174" />
 <sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="state0" />
-<TGConnectingPoint num="0" id="1533" />
-<TGConnectingPoint num="1" id="1534" />
-<TGConnectingPoint num="2" id="1535" />
-<TGConnectingPoint num="3" id="1536" />
-<TGConnectingPoint num="4" id="1537" />
-<TGConnectingPoint num="5" id="1538" />
-<TGConnectingPoint num="6" id="1539" />
-<TGConnectingPoint num="7" id="1540" />
-<TGConnectingPoint num="8" id="1541" />
-<TGConnectingPoint num="9" id="1542" />
-<TGConnectingPoint num="10" id="1543" />
-<TGConnectingPoint num="11" id="1544" />
-<TGConnectingPoint num="12" id="1545" />
-<TGConnectingPoint num="13" id="1546" />
-<TGConnectingPoint num="14" id="1547" />
-<TGConnectingPoint num="15" id="1548" />
-<TGConnectingPoint num="16" id="1549" />
-<TGConnectingPoint num="17" id="1550" />
-<TGConnectingPoint num="18" id="1551" />
-<TGConnectingPoint num="19" id="1552" />
-<TGConnectingPoint num="20" id="1553" />
-<TGConnectingPoint num="21" id="1554" />
-<TGConnectingPoint num="22" id="1555" />
-<TGConnectingPoint num="23" id="1556" />
-<TGConnectingPoint num="24" id="1557" />
-<TGConnectingPoint num="25" id="1558" />
-<TGConnectingPoint num="26" id="1559" />
-<TGConnectingPoint num="27" id="1560" />
-<TGConnectingPoint num="28" id="1561" />
-<TGConnectingPoint num="29" id="1562" />
-<TGConnectingPoint num="30" id="1563" />
-<TGConnectingPoint num="31" id="1564" />
-<TGConnectingPoint num="32" id="1565" />
-<TGConnectingPoint num="33" id="1566" />
-<TGConnectingPoint num="34" id="1567" />
-<TGConnectingPoint num="35" id="1568" />
-<TGConnectingPoint num="36" id="1569" />
-<TGConnectingPoint num="37" id="1570" />
-<TGConnectingPoint num="38" id="1571" />
-<TGConnectingPoint num="39" id="1572" />
+<TGConnectingPoint num="0" id="1651" />
+<TGConnectingPoint num="1" id="1652" />
+<TGConnectingPoint num="2" id="1653" />
+<TGConnectingPoint num="3" id="1654" />
+<TGConnectingPoint num="4" id="1655" />
+<TGConnectingPoint num="5" id="1656" />
+<TGConnectingPoint num="6" id="1657" />
+<TGConnectingPoint num="7" id="1658" />
+<TGConnectingPoint num="8" id="1659" />
+<TGConnectingPoint num="9" id="1660" />
+<TGConnectingPoint num="10" id="1661" />
+<TGConnectingPoint num="11" id="1662" />
+<TGConnectingPoint num="12" id="1663" />
+<TGConnectingPoint num="13" id="1664" />
+<TGConnectingPoint num="14" id="1665" />
+<TGConnectingPoint num="15" id="1666" />
+<TGConnectingPoint num="16" id="1667" />
+<TGConnectingPoint num="17" id="1668" />
+<TGConnectingPoint num="18" id="1669" />
+<TGConnectingPoint num="19" id="1670" />
+<TGConnectingPoint num="20" id="1671" />
+<TGConnectingPoint num="21" id="1672" />
+<TGConnectingPoint num="22" id="1673" />
+<TGConnectingPoint num="23" id="1674" />
+<TGConnectingPoint num="24" id="1675" />
+<TGConnectingPoint num="25" id="1676" />
+<TGConnectingPoint num="26" id="1677" />
+<TGConnectingPoint num="27" id="1678" />
+<TGConnectingPoint num="28" id="1679" />
+<TGConnectingPoint num="29" id="1680" />
+<TGConnectingPoint num="30" id="1681" />
+<TGConnectingPoint num="31" id="1682" />
+<TGConnectingPoint num="32" id="1683" />
+<TGConnectingPoint num="33" id="1684" />
+<TGConnectingPoint num="34" id="1685" />
+<TGConnectingPoint num="35" id="1686" />
+<TGConnectingPoint num="36" id="1687" />
+<TGConnectingPoint num="37" id="1688" />
+<TGConnectingPoint num="38" id="1689" />
+<TGConnectingPoint num="39" id="1690" />
 <extraparam>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5100" id="1521" >
-<father id="1573" num="0" />
+<SUBCOMPONENT type="5100" id="1639" >
+<father id="1691" num="0" />
 <cdparam x="333" y="213" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1520" />
+<TGConnectingPoint num="0" id="1638" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5103" id="1532" >
-<father id="1573" num="1" />
-<cdparam x="328" y="257" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5103" id="1650" >
+<father id="1691" num="1" />
+<cdparam x="330" y="257" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
 <infoparam name="Send signal" value="push()" />
-<TGConnectingPoint num="0" id="1522" />
-<TGConnectingPoint num="1" id="1523" />
-<TGConnectingPoint num="2" id="1524" />
-<TGConnectingPoint num="3" id="1525" />
-<TGConnectingPoint num="4" id="1526" />
-<TGConnectingPoint num="5" id="1527" />
-<TGConnectingPoint num="6" id="1528" />
-<TGConnectingPoint num="7" id="1529" />
-<TGConnectingPoint num="8" id="1530" />
-<TGConnectingPoint num="9" id="1531" />
+<TGConnectingPoint num="0" id="1640" />
+<TGConnectingPoint num="1" id="1641" />
+<TGConnectingPoint num="2" id="1642" />
+<TGConnectingPoint num="3" id="1643" />
+<TGConnectingPoint num="4" id="1644" />
+<TGConnectingPoint num="5" id="1645" />
+<TGConnectingPoint num="6" id="1646" />
+<TGConnectingPoint num="7" id="1647" />
+<TGConnectingPoint num="8" id="1648" />
+<TGConnectingPoint num="9" id="1649" />
 </SUBCOMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
 <AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="1580" >
+<CONNECTOR type="5102" id="1698" >
 <cdparam x="363" y="193" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="1579" />
-<P1  x="363" y="204" id="1596" />
-<P2  x="362" y="257" id="1607" />
+<TGConnectingPoint num="0" id="1697" />
+<P1  x="363" y="204" id="1714" />
+<P2  x="362" y="257" id="1725" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1578" >
-<father id="1580" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1696" >
+<father id="1698" num="0" />
 <cdparam x="380" y="228" />
 <sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1574" />
-<TGConnectingPoint num="1" id="1575" />
-<TGConnectingPoint num="2" id="1576" />
-<TGConnectingPoint num="3" id="1577" />
+<TGConnectingPoint num="0" id="1692" />
+<TGConnectingPoint num="1" id="1693" />
+<TGConnectingPoint num="2" id="1694" />
+<TGConnectingPoint num="3" id="1695" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="mechanicalDelay" />
@@ -3037,25 +3140,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1587" >
+<CONNECTOR type="5102" id="1705" >
 <cdparam x="363" y="150" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1586" />
-<P1  x="363" y="150" id="1653" />
-<P2  x="363" y="174" id="1595" />
+<TGConnectingPoint num="0" id="1704" />
+<P1  x="363" y="150" id="1771" />
+<P2  x="363" y="174" id="1713" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1585" >
-<father id="1587" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1703" >
+<father id="1705" num="0" />
 <cdparam x="363" y="190" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1581" />
-<TGConnectingPoint num="1" id="1582" />
-<TGConnectingPoint num="2" id="1583" />
-<TGConnectingPoint num="3" id="1584" />
+<TGConnectingPoint num="0" id="1699" />
+<TGConnectingPoint num="1" id="1700" />
+<TGConnectingPoint num="2" id="1701" />
+<TGConnectingPoint num="3" id="1702" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -3066,25 +3169,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1594" >
+<CONNECTOR type="5102" id="1712" >
 <cdparam x="362" y="101" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="1593" />
-<P1  x="362" y="101" id="1688" />
-<P2  x="363" y="120" id="1648" />
+<TGConnectingPoint num="0" id="1711" />
+<P1  x="362" y="101" id="1806" />
+<P2  x="363" y="120" id="1766" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1592" >
-<father id="1594" num="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1710" >
+<father id="1712" num="0" />
 <cdparam x="362" y="141" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1588" />
-<TGConnectingPoint num="1" id="1589" />
-<TGConnectingPoint num="2" id="1590" />
-<TGConnectingPoint num="3" id="1591" />
+<TGConnectingPoint num="0" id="1706" />
+<TGConnectingPoint num="1" id="1707" />
+<TGConnectingPoint num="2" id="1708" />
+<TGConnectingPoint num="3" id="1709" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -3095,131 +3198,131 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5103" id="1605" >
+<COMPONENT type="5103" id="1723" >
 <cdparam x="340" y="179" />
 <sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Send signal" value="push()" />
-<TGConnectingPoint num="0" id="1595" />
-<TGConnectingPoint num="1" id="1596" />
-<TGConnectingPoint num="2" id="1597" />
-<TGConnectingPoint num="3" id="1598" />
-<TGConnectingPoint num="4" id="1599" />
-<TGConnectingPoint num="5" id="1600" />
-<TGConnectingPoint num="6" id="1601" />
-<TGConnectingPoint num="7" id="1602" />
-<TGConnectingPoint num="8" id="1603" />
-<TGConnectingPoint num="9" id="1604" />
+<TGConnectingPoint num="0" id="1713" />
+<TGConnectingPoint num="1" id="1714" />
+<TGConnectingPoint num="2" id="1715" />
+<TGConnectingPoint num="3" id="1716" />
+<TGConnectingPoint num="4" id="1717" />
+<TGConnectingPoint num="5" id="1718" />
+<TGConnectingPoint num="6" id="1719" />
+<TGConnectingPoint num="7" id="1720" />
+<TGConnectingPoint num="8" id="1721" />
+<TGConnectingPoint num="9" id="1722" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="1646" >
+<COMPONENT type="5106" id="1764" >
 <cdparam x="337" y="257" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1606" />
-<TGConnectingPoint num="1" id="1607" />
-<TGConnectingPoint num="2" id="1608" />
-<TGConnectingPoint num="3" id="1609" />
-<TGConnectingPoint num="4" id="1610" />
-<TGConnectingPoint num="5" id="1611" />
-<TGConnectingPoint num="6" id="1612" />
-<TGConnectingPoint num="7" id="1613" />
-<TGConnectingPoint num="8" id="1614" />
-<TGConnectingPoint num="9" id="1615" />
-<TGConnectingPoint num="10" id="1616" />
-<TGConnectingPoint num="11" id="1617" />
-<TGConnectingPoint num="12" id="1618" />
-<TGConnectingPoint num="13" id="1619" />
-<TGConnectingPoint num="14" id="1620" />
-<TGConnectingPoint num="15" id="1621" />
-<TGConnectingPoint num="16" id="1622" />
-<TGConnectingPoint num="17" id="1623" />
-<TGConnectingPoint num="18" id="1624" />
-<TGConnectingPoint num="19" id="1625" />
-<TGConnectingPoint num="20" id="1626" />
-<TGConnectingPoint num="21" id="1627" />
-<TGConnectingPoint num="22" id="1628" />
-<TGConnectingPoint num="23" id="1629" />
-<TGConnectingPoint num="24" id="1630" />
-<TGConnectingPoint num="25" id="1631" />
-<TGConnectingPoint num="26" id="1632" />
-<TGConnectingPoint num="27" id="1633" />
-<TGConnectingPoint num="28" id="1634" />
-<TGConnectingPoint num="29" id="1635" />
-<TGConnectingPoint num="30" id="1636" />
-<TGConnectingPoint num="31" id="1637" />
-<TGConnectingPoint num="32" id="1638" />
-<TGConnectingPoint num="33" id="1639" />
-<TGConnectingPoint num="34" id="1640" />
-<TGConnectingPoint num="35" id="1641" />
-<TGConnectingPoint num="36" id="1642" />
-<TGConnectingPoint num="37" id="1643" />
-<TGConnectingPoint num="38" id="1644" />
-<TGConnectingPoint num="39" id="1645" />
+<TGConnectingPoint num="0" id="1724" />
+<TGConnectingPoint num="1" id="1725" />
+<TGConnectingPoint num="2" id="1726" />
+<TGConnectingPoint num="3" id="1727" />
+<TGConnectingPoint num="4" id="1728" />
+<TGConnectingPoint num="5" id="1729" />
+<TGConnectingPoint num="6" id="1730" />
+<TGConnectingPoint num="7" id="1731" />
+<TGConnectingPoint num="8" id="1732" />
+<TGConnectingPoint num="9" id="1733" />
+<TGConnectingPoint num="10" id="1734" />
+<TGConnectingPoint num="11" id="1735" />
+<TGConnectingPoint num="12" id="1736" />
+<TGConnectingPoint num="13" id="1737" />
+<TGConnectingPoint num="14" id="1738" />
+<TGConnectingPoint num="15" id="1739" />
+<TGConnectingPoint num="16" id="1740" />
+<TGConnectingPoint num="17" id="1741" />
+<TGConnectingPoint num="18" id="1742" />
+<TGConnectingPoint num="19" id="1743" />
+<TGConnectingPoint num="20" id="1744" />
+<TGConnectingPoint num="21" id="1745" />
+<TGConnectingPoint num="22" id="1746" />
+<TGConnectingPoint num="23" id="1747" />
+<TGConnectingPoint num="24" id="1748" />
+<TGConnectingPoint num="25" id="1749" />
+<TGConnectingPoint num="26" id="1750" />
+<TGConnectingPoint num="27" id="1751" />
+<TGConnectingPoint num="28" id="1752" />
+<TGConnectingPoint num="29" id="1753" />
+<TGConnectingPoint num="30" id="1754" />
+<TGConnectingPoint num="31" id="1755" />
+<TGConnectingPoint num="32" id="1756" />
+<TGConnectingPoint num="33" id="1757" />
+<TGConnectingPoint num="34" id="1758" />
+<TGConnectingPoint num="35" id="1759" />
+<TGConnectingPoint num="36" id="1760" />
+<TGConnectingPoint num="37" id="1761" />
+<TGConnectingPoint num="38" id="1762" />
+<TGConnectingPoint num="39" id="1763" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1687" >
+<COMPONENT type="5106" id="1805" >
 <cdparam x="338" y="120" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1647" />
-<TGConnectingPoint num="1" id="1648" />
-<TGConnectingPoint num="2" id="1649" />
-<TGConnectingPoint num="3" id="1650" />
-<TGConnectingPoint num="4" id="1651" />
-<TGConnectingPoint num="5" id="1652" />
-<TGConnectingPoint num="6" id="1653" />
-<TGConnectingPoint num="7" id="1654" />
-<TGConnectingPoint num="8" id="1655" />
-<TGConnectingPoint num="9" id="1656" />
-<TGConnectingPoint num="10" id="1657" />
-<TGConnectingPoint num="11" id="1658" />
-<TGConnectingPoint num="12" id="1659" />
-<TGConnectingPoint num="13" id="1660" />
-<TGConnectingPoint num="14" id="1661" />
-<TGConnectingPoint num="15" id="1662" />
-<TGConnectingPoint num="16" id="1663" />
-<TGConnectingPoint num="17" id="1664" />
-<TGConnectingPoint num="18" id="1665" />
-<TGConnectingPoint num="19" id="1666" />
-<TGConnectingPoint num="20" id="1667" />
-<TGConnectingPoint num="21" id="1668" />
-<TGConnectingPoint num="22" id="1669" />
-<TGConnectingPoint num="23" id="1670" />
-<TGConnectingPoint num="24" id="1671" />
-<TGConnectingPoint num="25" id="1672" />
-<TGConnectingPoint num="26" id="1673" />
-<TGConnectingPoint num="27" id="1674" />
-<TGConnectingPoint num="28" id="1675" />
-<TGConnectingPoint num="29" id="1676" />
-<TGConnectingPoint num="30" id="1677" />
-<TGConnectingPoint num="31" id="1678" />
-<TGConnectingPoint num="32" id="1679" />
-<TGConnectingPoint num="33" id="1680" />
-<TGConnectingPoint num="34" id="1681" />
-<TGConnectingPoint num="35" id="1682" />
-<TGConnectingPoint num="36" id="1683" />
-<TGConnectingPoint num="37" id="1684" />
-<TGConnectingPoint num="38" id="1685" />
-<TGConnectingPoint num="39" id="1686" />
+<TGConnectingPoint num="0" id="1765" />
+<TGConnectingPoint num="1" id="1766" />
+<TGConnectingPoint num="2" id="1767" />
+<TGConnectingPoint num="3" id="1768" />
+<TGConnectingPoint num="4" id="1769" />
+<TGConnectingPoint num="5" id="1770" />
+<TGConnectingPoint num="6" id="1771" />
+<TGConnectingPoint num="7" id="1772" />
+<TGConnectingPoint num="8" id="1773" />
+<TGConnectingPoint num="9" id="1774" />
+<TGConnectingPoint num="10" id="1775" />
+<TGConnectingPoint num="11" id="1776" />
+<TGConnectingPoint num="12" id="1777" />
+<TGConnectingPoint num="13" id="1778" />
+<TGConnectingPoint num="14" id="1779" />
+<TGConnectingPoint num="15" id="1780" />
+<TGConnectingPoint num="16" id="1781" />
+<TGConnectingPoint num="17" id="1782" />
+<TGConnectingPoint num="18" id="1783" />
+<TGConnectingPoint num="19" id="1784" />
+<TGConnectingPoint num="20" id="1785" />
+<TGConnectingPoint num="21" id="1786" />
+<TGConnectingPoint num="22" id="1787" />
+<TGConnectingPoint num="23" id="1788" />
+<TGConnectingPoint num="24" id="1789" />
+<TGConnectingPoint num="25" id="1790" />
+<TGConnectingPoint num="26" id="1791" />
+<TGConnectingPoint num="27" id="1792" />
+<TGConnectingPoint num="28" id="1793" />
+<TGConnectingPoint num="29" id="1794" />
+<TGConnectingPoint num="30" id="1795" />
+<TGConnectingPoint num="31" id="1796" />
+<TGConnectingPoint num="32" id="1797" />
+<TGConnectingPoint num="33" id="1798" />
+<TGConnectingPoint num="34" id="1799" />
+<TGConnectingPoint num="35" id="1800" />
+<TGConnectingPoint num="36" id="1801" />
+<TGConnectingPoint num="37" id="1802" />
+<TGConnectingPoint num="38" id="1803" />
+<TGConnectingPoint num="39" id="1804" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="1689" >
+<COMPONENT type="5100" id="1807" >
 <cdparam x="355" y="81" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1688" />
+<TGConnectingPoint num="0" id="1806" />
 </COMPONENT>
 
 
diff --git a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
index d914201a8119c9abfa6933aa24ab2512e5430064..1676feaf83e9089261ea5cca374d0d63d25a390b 100644
--- a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
+++ b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
@@ -9,7 +9,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="" />
 <TGConnectingPoint num="0" id="1" />
-<P1  x="583" y="542" id="11" />
+<P1  x="582" y="540" id="11" />
 <P2  x="504" y="443" id="52" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -18,7 +18,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="" />
 <TGConnectingPoint num="0" id="3" />
-<P1  x="268" y="535" id="24" />
+<P1  x="269" y="535" id="24" />
 <P2  x="269" y="438" id="77" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -50,7 +50,7 @@
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="1403" id="23" >
-<cdparam x="507" y="542" />
+<cdparam x="506" y="540" />
 <sizeparam width="153" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -73,7 +73,7 @@
 </COMPONENT>
 
 <COMPONENT type="1403" id="36" >
-<cdparam x="192" y="535" />
+<cdparam x="193" y="535" />
 <sizeparam width="153" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -196,7 +196,7 @@
 <hidden value="false" />
 <enabled value="true" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="RetreiveDataOfSC" />
+<infoparam name="TGComponent" value="RetrieveDataOfSC" />
 <TGConnectingPoint num="0" id="100" />
 <TGConnectingPoint num="1" id="101" />
 <TGConnectingPoint num="2" id="102" />
@@ -261,7 +261,7 @@
 </COMPONENT>
 
 <COMPONENT type="5200" id="184" >
-<cdparam x="193" y="93" />
+<cdparam x="192" y="94" />
 <sizeparam width="334" height="128" minWidth="1" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="220" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -314,13 +314,13 @@
 <textline data="and its Interface shall be confidential" />
 <kind data="Confidentiality" />
 <criticality data="High" />
-<reqType data="2" />
+<reqType data="SecurityRequirement" />
 <id data="0" />
 <satisfied data="false" />
 <verified data="false" />
-<attackTreeNode data="" />
+<attackTreeNode data="RetrieveDataOfSC" />
 <violatedAction data="" />
-<referenceElements data="AppC_Secure" />
+<referenceElements data="AppC" />
 </extraparam>
 </COMPONENT>
 
@@ -330,7 +330,7 @@
 <infoparam name="connector" value="&lt;&lt;satisfy&gt;&gt;" />
 <TGConnectingPoint num="0" id="185" />
 <P1  x="530" y="332" id="131" />
-<P2  x="443" y="221" id="180" />
+<P2  x="442" y="222" id="180" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
@@ -347,16 +347,16 @@
 <cdparam x="535" y="347" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="556" y="321" id="355" />
-<P2  x="534" y="395" id="402" />
+<P1  x="556" y="347" id="299" />
+<P2  x="547" y="382" id="254" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="189" >
 <cdparam x="820" y="398" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1025" y="471" id="249" />
-<P2  x="761" y="548" id="370" />
+<P1  x="1025" y="497" id="396" />
+<P2  x="761" y="574" id="284" />
 <Point x="887" y="577" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="188" >
@@ -372,192 +372,192 @@
 <cdparam x="568" y="323" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="710" y="403" id="372" />
-<P2  x="693" y="321" id="333" />
+<P1  x="710" y="403" id="282" />
+<P2  x="693" y="347" id="321" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="191" >
 <cdparam x="522" y="390" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="534" y="369" id="397" />
-<P2  x="453" y="322" id="236" />
+<P1  x="521" y="382" id="249" />
+<P2  x="466" y="335" id="228" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="192" >
 <cdparam x="409" y="124" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="401" y="83" id="238" />
-<P2  x="593" y="84" id="357" />
+<P1  x="401" y="83" id="226" />
+<P2  x="593" y="84" id="297" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="193" >
 <cdparam x="656" y="426" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="542" id="376" />
-<P2  x="969" y="474" id="263" />
+<P1  x="816" y="552" id="278" />
+<P2  x="969" y="495" id="382" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="194" >
 <cdparam x="656" y="400" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="509" id="378" />
-<P2  x="931" y="466" id="261" />
+<P1  x="816" y="519" id="276" />
+<P2  x="921" y="476" id="384" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="195" >
 <cdparam x="602" y="327" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="751" y="406" id="386" />
-<P2  x="842" y="362" id="291" />
+<P1  x="750" y="406" id="268" />
+<P2  x="828" y="375" id="348" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="196" >
 <cdparam x="689" y="292" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="842" y="388" id="295" />
-<P2  x="931" y="352" id="271" />
+<P1  x="854" y="375" id="352" />
+<P2  x="921" y="362" id="374" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="197" >
 <cdparam x="656" y="377" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="481" id="382" />
-<P2  x="931" y="443" id="269" />
+<P1  x="816" y="491" id="272" />
+<P2  x="921" y="453" id="376" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="198" >
 <cdparam x="656" y="351" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="805" y="448" id="380" />
-<P2  x="931" y="416" id="267" />
+<P1  x="816" y="458" id="274" />
+<P2  x="921" y="426" id="378" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="199" >
 <cdparam x="741" y="296" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="931" y="387" id="265" />
-<P2  x="805" y="419" id="384" />
+<P1  x="921" y="397" id="380" />
+<P2  x="816" y="429" id="270" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="200" >
 <cdparam x="735" y="260" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="931" y="317" id="273" />
-<P2  x="734" y="269" id="345" />
+<P1  x="918" y="330" id="372" />
+<P2  x="747" y="282" id="309" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="201" >
 <cdparam x="641" y="230" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="734" y="235" id="343" />
-<P2  x="931" y="278" id="275" />
+<P1  x="747" y="248" id="311" />
+<P2  x="918" y="291" id="370" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="202" >
 <cdparam x="641" y="195" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="734" y="190" id="341" />
-<P2  x="931" y="235" id="277" />
+<P1  x="747" y="203" id="313" />
+<P2  x="918" y="248" id="368" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="203" >
 <cdparam x="740" y="353" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="842" y="362" id="290" />
-<P2  x="734" y="301" id="339" />
+<P1  x="828" y="375" id="347" />
+<P2  x="747" y="314" id="315" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="204" >
 <cdparam x="460" y="270" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="534" y="290" id="349" />
-<P2  x="453" y="290" id="230" />
+<P1  x="521" y="303" id="305" />
+<P2  x="466" y="303" id="234" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="205" >
 <cdparam x="387" y="129" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="453" y="116" id="226" />
-<P2  x="534" y="116" id="337" />
+<P1  x="464" y="126" id="238" />
+<P2  x="524" y="126" id="317" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="206" >
 <cdparam x="389" y="200" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="453" y="202" id="232" />
-<P2  x="534" y="202" id="351" />
+<P1  x="466" y="215" id="232" />
+<P2  x="521" y="215" id="303" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="207" >
 <cdparam x="460" y="236" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="534" y="247" id="353" />
-<P2  x="453" y="247" id="234" />
+<P1  x="521" y="260" id="301" />
+<P2  x="466" y="260" id="230" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="208" >
 <cdparam x="389" y="163" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="453" y="156" id="228" />
-<P2  x="534" y="156" id="347" />
+<P1  x="466" y="169" id="236" />
+<P2  x="521" y="169" id="307" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="209" >
 <cdparam x="967" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="931" y="185" id="279" />
-<P2  x="734" y="111" id="359" />
+<P1  x="918" y="198" id="366" />
+<P2  x="747" y="124" id="295" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="210" >
 <cdparam x="1028" y="535" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="630" y="324" id="335" />
-<P2  x="669" y="406" id="374" />
+<P1  x="630" y="345" id="319" />
+<P2  x="669" y="406" id="280" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="211" >
 <cdparam x="1308" y="303" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1232" y="368" id="313" />
-<P2  x="1167" y="370" id="259" />
+<P1  x="1222" y="378" id="332" />
+<P2  x="1178" y="380" id="386" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="212" >
 <cdparam x="1172" y="437" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1167" y="405" id="257" />
-<P2  x="1232" y="403" id="311" />
+<P1  x="1178" y="415" id="388" />
+<P2  x="1222" y="413" id="334" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="215" >
 <cdparam x="1041" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1167" y="198" id="255" />
-<P2  x="1167" y="266" id="253" />
+<P1  x="1178" y="208" id="390" />
+<P2  x="1178" y="276" id="392" />
 <Point x="1227" y="207" />
 <Point x="1227" y="247" />
 <AutomaticDrawing  data="true" />
@@ -582,8 +582,8 @@
 <cdparam x="877" y="343" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1167" y="444" id="251" />
-<P2  x="1232" y="431" id="309" />
+<P1  x="1178" y="454" id="394" />
+<P2  x="1222" y="441" id="336" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="1205" id="225" >
@@ -631,14 +631,15 @@
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="227" >
 <father id="248" num="0" />
-<cdparam x="443" y="116" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<reference id="184" />
+<cdparam x="388" y="83" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="280" minY="-10" maxY="266" />
-<infoparam name="TGComponent" value="Request activation" />
+<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
+<infoparam name="TGComponent" value="Event reset, pTS, end" />
 <TGConnectingPoint num="0" id="226" />
 <extraparam>
-<Prop commName="activation" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="reset, pTS, end" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -648,16 +649,16 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="229" >
 <father id="248" num="1" />
-<cdparam x="440" y="156" />
+<cdparam x="440" y="322" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event data_Ready" />
+<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
 <TGConnectingPoint num="0" id="228" />
 <extraparam>
-<Prop commName="data_Ready" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
-<Type type="2" typeOther="" />
+<Prop commName="answerToReset, pTSConfirm" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -665,14 +666,15 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="231" >
 <father id="248" num="2" />
-<cdparam x="440" y="290" />
+<reference id="184" />
+<cdparam x="440" y="247" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event data_Ready_SC" />
+<infoparam name="TGComponent" value="Channel fromSCtoD" />
 <TGConnectingPoint num="0" id="230" />
 <extraparam>
-<Prop commName="data_Ready_SC" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromSCtoD" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -690,7 +692,7 @@
 <infoparam name="TGComponent" value="Channel fromDtoSC" />
 <TGConnectingPoint num="0" id="232" />
 <extraparam>
-<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="2" checkAuth="false" checkWeakAuthStatus="1" checkStrongAuthStatus="1" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -700,15 +702,14 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="235" >
 <father id="248" num="4" />
-<reference id="184" />
-<cdparam x="440" y="247" />
+<cdparam x="440" y="290" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Channel fromSCtoD" />
+<infoparam name="TGComponent" value="Event data_Ready_SC" />
 <TGConnectingPoint num="0" id="234" />
 <extraparam>
-<Prop commName="fromSCtoD" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="data_Ready_SC" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -718,16 +719,16 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="237" >
 <father id="248" num="5" />
-<cdparam x="440" y="322" />
+<cdparam x="440" y="156" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
+<infoparam name="TGComponent" value="Event data_Ready" />
 <TGConnectingPoint num="0" id="236" />
 <extraparam>
-<Prop commName="answerToReset, pTSConfirm" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Prop commName="data_Ready" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
+<Type type="2" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -735,15 +736,14 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="239" >
 <father id="248" num="6" />
-<reference id="184" />
-<cdparam x="388" y="83" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="443" y="116" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event reset, pTS, end" />
+<cdrectangleparam minX="-10" maxX="280" minY="-10" maxY="266" />
+<infoparam name="TGComponent" value="Request activation" />
 <TGConnectingPoint num="0" id="238" />
 <extraparam>
-<Prop commName="reset, pTS, end" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="activation" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -770,61 +770,61 @@
 <info hiddeni="false" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1200" id="332" >
+<SUBCOMPONENT type="1201" id="267" >
 <father id="424" num="0" />
-<cdparam x="842" y="133" />
-<sizeparam width="570" height="485" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="521" y="369" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="365" minY="0" maxY="45" />
-<infoparam name="TGComponent" value="TCPIP Entities" />
-<TGConnectingPoint num="0" id="324" />
-<TGConnectingPoint num="1" id="325" />
-<TGConnectingPoint num="2" id="326" />
-<TGConnectingPoint num="3" id="327" />
-<TGConnectingPoint num="4" id="328" />
-<TGConnectingPoint num="5" id="329" />
-<TGConnectingPoint num="6" id="330" />
-<TGConnectingPoint num="7" id="331" />
-<extraparam>
-<info hiddeni="false" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="289" >
-<father id="332" num="0" />
-<cdparam x="931" y="167" />
-<sizeparam width="236" height="317" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-13" maxX="922" minY="-13" maxY="517" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="249" />
+<TGConnectingPoint num="1" id="250" />
+<TGConnectingPoint num="2" id="251" />
+<TGConnectingPoint num="3" id="252" />
+<TGConnectingPoint num="4" id="253" />
+<TGConnectingPoint num="5" id="254" />
+<TGConnectingPoint num="6" id="255" />
+<TGConnectingPoint num="7" id="256" />
+<TGConnectingPoint num="8" id="257" />
+<TGConnectingPoint num="9" id="258" />
+<TGConnectingPoint num="10" id="259" />
+<TGConnectingPoint num="11" id="260" />
+<TGConnectingPoint num="12" id="261" />
+<TGConnectingPoint num="13" id="262" />
+<TGConnectingPoint num="14" id="263" />
+<TGConnectingPoint num="15" id="264" />
+<TGConnectingPoint num="16" id="265" />
+<TGConnectingPoint num="17" id="266" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="294" >
+<father id="424" num="1" />
+<cdparam x="565" y="416" />
+<sizeparam width="240" height="145" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="334" minY="0" maxY="168" />
-<infoparam name="TGComponent" value="TCPIP" />
-<TGConnectingPoint num="0" id="281" />
-<TGConnectingPoint num="1" id="282" />
-<TGConnectingPoint num="2" id="283" />
-<TGConnectingPoint num="3" id="284" />
-<TGConnectingPoint num="4" id="285" />
-<TGConnectingPoint num="5" id="286" />
-<TGConnectingPoint num="6" id="287" />
-<TGConnectingPoint num="7" id="288" />
+<cdrectangleparam minX="0" maxX="695" minY="0" maxY="385" />
+<infoparam name="TGComponent" value="Application" />
+<TGConnectingPoint num="0" id="286" />
+<TGConnectingPoint num="1" id="287" />
+<TGConnectingPoint num="2" id="288" />
+<TGConnectingPoint num="3" id="289" />
+<TGConnectingPoint num="4" id="290" />
+<TGConnectingPoint num="5" id="291" />
+<TGConnectingPoint num="6" id="292" />
+<TGConnectingPoint num="7" id="293" />
 <extraparam>
 <Data isAttacker="No" />
-<Attribute access="2" id="wind" value="64" type="0" typeOther="" />
-<Attribute access="2" id="seqNum" value="0" type="0" typeOther="" />
-<Attribute access="2" id="i" value="" type="0" typeOther="" />
-<Attribute access="2" id="j" value="" type="0" typeOther="" />
-<Attribute access="2" id="a" value="0" type="0" typeOther="" />
-<Attribute access="2" id="b" value="0" type="0" typeOther="" />
-<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="250" >
-<father id="289" num="0" />
-<cdparam x="1012" y="471" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="269" >
+<father id="294" num="0" />
+<cdparam x="740" y="406" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="Primitive port" value="Event opened" />
-<TGConnectingPoint num="0" id="249" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="268" />
 <extraparam>
-<Prop commName="opened" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -832,16 +832,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="252" >
-<father id="289" num="1" />
-<cdparam x="1157" y="444" />
+<SUBCOMPONENT type="1203" id="271" >
+<father id="294" num="1" />
+<cdparam x="795" y="419" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event stop" />
-<TGConnectingPoint num="0" id="251" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Channel fromTtoA" />
+<TGConnectingPoint num="0" id="270" />
 <extraparam>
-<Prop commName="stop" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromTtoA" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -849,16 +849,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="254" >
-<father id="289" num="2" />
-<cdparam x="1157" y="266" />
+<SUBCOMPONENT type="1203" id="273" >
+<father id="294" num="2" />
+<cdparam x="795" y="481" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel temp" />
-<TGConnectingPoint num="0" id="253" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Event send_TCP" />
+<TGConnectingPoint num="0" id="272" />
 <extraparam>
-<Prop commName="temp" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="send_TCP" commType="1" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -866,16 +866,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="256" >
-<father id="289" num="3" />
-<cdparam x="1157" y="198" />
+<SUBCOMPONENT type="1203" id="275" >
+<father id="294" num="3" />
+<cdparam x="795" y="448" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel temp" />
-<TGConnectingPoint num="0" id="255" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Event open, abort, close" />
+<TGConnectingPoint num="0" id="274" />
 <extraparam>
-<Prop commName="temp" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="open, abort, close" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -883,16 +883,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="258" >
-<father id="289" num="4" />
-<cdparam x="1157" y="405" />
+<SUBCOMPONENT type="1203" id="277" >
+<father id="294" num="4" />
+<cdparam x="795" y="509" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Request req_Timer" />
-<TGConnectingPoint num="0" id="257" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Event receive_Application" />
+<TGConnectingPoint num="0" id="276" />
 <extraparam>
-<Prop commName="req_Timer" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="receive_Application" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -900,16 +900,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="260" >
-<father id="289" num="5" />
-<cdparam x="1157" y="370" />
+<SUBCOMPONENT type="1203" id="279" >
+<father id="294" num="5" />
+<cdparam x="795" y="542" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event timeOut" />
-<TGConnectingPoint num="0" id="259" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Channel fromAtoT" />
+<TGConnectingPoint num="0" id="278" />
 <extraparam>
-<Prop commName="timeOut" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromAtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -917,16 +917,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="262" >
-<father id="289" num="6" />
-<cdparam x="921" y="466" />
+<SUBCOMPONENT type="1203" id="281" >
+<father id="294" num="6" />
+<cdparam x="659" y="406" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event receive_Application" />
-<TGConnectingPoint num="0" id="261" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Request start_Application" />
+<TGConnectingPoint num="0" id="280" />
 <extraparam>
-<Prop commName="receive_Application" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="start_Application" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -934,16 +934,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="264" >
-<father id="289" num="7" />
-<cdparam x="959" y="474" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="283" >
+<father id="294" num="7" />
+<cdparam x="697" y="403" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel fromAtoT" />
-<TGConnectingPoint num="0" id="263" />
+<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
+<infoparam name="Primitive port" value="Event connectionOpened" />
+<TGConnectingPoint num="0" id="282" />
 <extraparam>
-<Prop commName="fromAtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="connectionOpened" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -951,16 +951,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="266" >
-<father id="289" num="8" />
-<cdparam x="921" y="387" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="285" >
+<father id="294" num="8" />
+<cdparam x="748" y="548" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel fromTtoA" />
-<TGConnectingPoint num="0" id="265" />
+<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
+<infoparam name="Primitive port" value="Event opened" />
+<TGConnectingPoint num="0" id="284" />
 <extraparam>
-<Prop commName="fromTtoA" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="opened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -968,16 +968,43 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="268" >
-<father id="289" num="9" />
-<cdparam x="921" y="416" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="331" >
+<father id="424" num="2" />
+<cdparam x="534" y="97" />
+<sizeparam width="200" height="237" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event open, abort, close" />
-<TGConnectingPoint num="0" id="267" />
+<cdrectangleparam minX="0" maxX="735" minY="0" maxY="293" />
+<infoparam name="TGComponent" value="SmartCard" />
+<TGConnectingPoint num="0" id="323" />
+<TGConnectingPoint num="1" id="324" />
+<TGConnectingPoint num="2" id="325" />
+<TGConnectingPoint num="3" id="326" />
+<TGConnectingPoint num="4" id="327" />
+<TGConnectingPoint num="5" id="328" />
+<TGConnectingPoint num="6" id="329" />
+<TGConnectingPoint num="7" id="330" />
 <extraparam>
-<Prop commName="open, abort, close" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Data isAttacker="No" />
+<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
+<Attribute access="2" id="a" value="0" type="0" typeOther="" />
+<Attribute access="2" id="b" value="" type="4" typeOther="" />
+<Attribute access="2" id="i" value="0" type="0" typeOther="" />
+<Attribute access="2" id="j" value="0" type="0" typeOther="" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
+<Attribute access="2" id="t" value="" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="296" >
+<father id="331" num="0" />
+<cdparam x="721" y="111" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event send" />
+<TGConnectingPoint num="0" id="295" />
+<extraparam>
+<Prop commName="send" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -985,16 +1012,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="270" >
-<father id="289" num="10" />
-<cdparam x="921" y="443" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="298" >
+<father id="331" num="1" />
+<reference id="184" />
+<cdparam x="580" y="84" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event send_TCP" />
-<TGConnectingPoint num="0" id="269" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event reset, pTS, end" />
+<TGConnectingPoint num="0" id="297" />
 <extraparam>
-<Prop commName="send_TCP" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="reset, pTS, end" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1002,16 +1030,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="272" >
-<father id="289" num="11" />
-<cdparam x="921" y="352" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="300" >
+<father id="331" num="2" />
+<cdparam x="543" y="321" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Request start_TCP_IP" />
-<TGConnectingPoint num="0" id="271" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
+<TGConnectingPoint num="0" id="299" />
 <extraparam>
-<Prop commName="start_TCP_IP" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="answerToReset, pTSConfirm" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1019,16 +1047,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="274" >
-<father id="289" num="12" />
-<cdparam x="918" y="317" />
+<SUBCOMPONENT type="1203" id="302" >
+<father id="331" num="3" />
+<reference id="184" />
+<cdparam x="521" y="247" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Channel fromTtoP" />
-<TGConnectingPoint num="0" id="273" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromSCtoD" />
+<TGConnectingPoint num="0" id="301" />
 <extraparam>
-<Prop commName="fromTtoP" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="2" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1036,16 +1065,17 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="276" >
-<father id="289" num="13" />
-<cdparam x="918" y="278" />
+<SUBCOMPONENT type="1203" id="304" >
+<father id="331" num="4" />
+<reference id="184" />
+<cdparam x="521" y="202" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Channel fromPtoT" />
-<TGConnectingPoint num="0" id="275" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromDtoSC" />
+<TGConnectingPoint num="0" id="303" />
 <extraparam>
-<Prop commName="fromPtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromDtoSC" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="null" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1053,16 +1083,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="278" >
-<father id="289" num="14" />
-<cdparam x="918" y="235" />
+<SUBCOMPONENT type="1203" id="306" >
+<father id="331" num="5" />
+<cdparam x="521" y="290" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Event receive" />
-<TGConnectingPoint num="0" id="277" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event data_Ready_SC" />
+<TGConnectingPoint num="0" id="305" />
 <extraparam>
-<Prop commName="receive" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="data_Ready_SC" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1070,79 +1100,33 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="280" >
-<father id="289" num="15" />
-<cdparam x="918" y="185" />
+<SUBCOMPONENT type="1203" id="308" >
+<father id="331" num="6" />
+<cdparam x="521" y="156" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Event send" />
-<TGConnectingPoint num="0" id="279" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event data_Ready" />
+<TGConnectingPoint num="0" id="307" />
 <extraparam>
-<Prop commName="send" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Prop commName="data_Ready" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
+<Type type="2" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="308" >
-<father id="332" num="1" />
-<cdparam x="829" y="362" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="310" >
+<father id="331" num="7" />
+<cdparam x="721" y="269" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="557" minY="-13" maxY="472" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="290" />
-<TGConnectingPoint num="1" id="291" />
-<TGConnectingPoint num="2" id="292" />
-<TGConnectingPoint num="3" id="293" />
-<TGConnectingPoint num="4" id="294" />
-<TGConnectingPoint num="5" id="295" />
-<TGConnectingPoint num="6" id="296" />
-<TGConnectingPoint num="7" id="297" />
-<TGConnectingPoint num="8" id="298" />
-<TGConnectingPoint num="9" id="299" />
-<TGConnectingPoint num="10" id="300" />
-<TGConnectingPoint num="11" id="301" />
-<TGConnectingPoint num="12" id="302" />
-<TGConnectingPoint num="13" id="303" />
-<TGConnectingPoint num="14" id="304" />
-<TGConnectingPoint num="15" id="305" />
-<TGConnectingPoint num="16" id="306" />
-<TGConnectingPoint num="17" id="307" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="323" >
-<father id="332" num="2" />
-<cdparam x="1232" y="328" />
-<sizeparam width="140" height="141" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="430" minY="0" maxY="344" />
-<infoparam name="TGComponent" value="Timer" />
-<TGConnectingPoint num="0" id="315" />
-<TGConnectingPoint num="1" id="316" />
-<TGConnectingPoint num="2" id="317" />
-<TGConnectingPoint num="3" id="318" />
-<TGConnectingPoint num="4" id="319" />
-<TGConnectingPoint num="5" id="320" />
-<TGConnectingPoint num="6" id="321" />
-<TGConnectingPoint num="7" id="322" />
-<extraparam>
-<Data isAttacker="No" />
-<Attribute access="2" id="x" value="0" type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="310" >
-<father id="323" num="0" />
-<cdparam x="1222" y="431" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
-<infoparam name="TGComponent" value="Event stop" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromTtoP" />
 <TGConnectingPoint num="0" id="309" />
 <extraparam>
-<Prop commName="stop" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromTtoP" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1151,15 +1135,15 @@
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="312" >
-<father id="323" num="1" />
-<cdparam x="1222" y="403" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<father id="331" num="8" />
+<cdparam x="721" y="235" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
-<infoparam name="TGComponent" value="Request req_Timer" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromPtoT" />
 <TGConnectingPoint num="0" id="311" />
 <extraparam>
-<Prop commName="req_Timer" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromPtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1168,15 +1152,15 @@
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="314" >
-<father id="323" num="2" />
-<cdparam x="1222" y="368" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<father id="331" num="9" />
+<cdparam x="721" y="190" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
-<infoparam name="TGComponent" value="Event timeOut" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event receive" />
 <TGConnectingPoint num="0" id="313" />
 <extraparam>
-<Prop commName="timeOut" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="receive" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1184,43 +1168,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="369" >
-<father id="424" num="1" />
-<cdparam x="534" y="97" />
-<sizeparam width="200" height="237" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="735" minY="0" maxY="293" />
-<infoparam name="TGComponent" value="SmartCard" />
-<TGConnectingPoint num="0" id="361" />
-<TGConnectingPoint num="1" id="362" />
-<TGConnectingPoint num="2" id="363" />
-<TGConnectingPoint num="3" id="364" />
-<TGConnectingPoint num="4" id="365" />
-<TGConnectingPoint num="5" id="366" />
-<TGConnectingPoint num="6" id="367" />
-<TGConnectingPoint num="7" id="368" />
-<extraparam>
-<Data isAttacker="No" />
-<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
-<Attribute access="2" id="a" value="0" type="0" typeOther="" />
-<Attribute access="2" id="b" value="" type="4" typeOther="" />
-<Attribute access="2" id="i" value="0" type="0" typeOther="" />
-<Attribute access="2" id="j" value="0" type="0" typeOther="" />
-<Attribute access="2" id="x" value="0" type="0" typeOther="" />
-<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
-<Attribute access="2" id="t" value="" type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="334" >
-<father id="369" num="0" />
-<cdparam x="680" y="321" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="316" >
+<father id="331" num="10" />
+<cdparam x="721" y="301" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="Primitive port" value="Event connectionOpened" />
-<TGConnectingPoint num="0" id="333" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="315" />
 <extraparam>
-<Prop commName="connectionOpened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1228,16 +1185,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="336" >
-<father id="369" num="1" />
-<cdparam x="620" y="324" />
+<SUBCOMPONENT type="1203" id="318" >
+<father id="331" num="11" />
+<cdparam x="524" y="116" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="190" minY="-10" maxY="227" />
-<infoparam name="TGComponent" value="Request start_Application" />
-<TGConnectingPoint num="0" id="335" />
+<infoparam name="TGComponent" value="Request activation" />
+<TGConnectingPoint num="0" id="317" />
 <extraparam>
-<Prop commName="start_Application" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="activation" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1245,16 +1202,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="338" >
-<father id="369" num="2" />
-<cdparam x="524" y="116" />
+<SUBCOMPONENT type="1203" id="320" >
+<father id="331" num="12" />
+<cdparam x="620" y="324" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="190" minY="-10" maxY="227" />
-<infoparam name="TGComponent" value="Request activation" />
-<TGConnectingPoint num="0" id="337" />
+<infoparam name="TGComponent" value="Request start_Application" />
+<TGConnectingPoint num="0" id="319" />
 <extraparam>
-<Prop commName="activation" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="start_Application" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1262,16 +1219,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="340" >
-<father id="369" num="3" />
-<cdparam x="721" y="301" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="322" >
+<father id="331" num="13" />
+<cdparam x="680" y="321" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Request start_TCP_IP" />
-<TGConnectingPoint num="0" id="339" />
+<infoparam name="Primitive port" value="Event connectionOpened" />
+<TGConnectingPoint num="0" id="321" />
 <extraparam>
-<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="connectionOpened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1279,16 +1236,55 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="342" >
-<father id="369" num="4" />
-<cdparam x="721" y="190" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1200" id="415" >
+<father id="424" num="3" />
+<cdparam x="841" y="133" />
+<sizeparam width="570" height="485" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event receive" />
-<TGConnectingPoint num="0" id="341" />
+<cdrectangleparam minX="0" maxX="365" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="TCPIP Entities" />
+<TGConnectingPoint num="0" id="407" />
+<TGConnectingPoint num="1" id="408" />
+<TGConnectingPoint num="2" id="409" />
+<TGConnectingPoint num="3" id="410" />
+<TGConnectingPoint num="4" id="411" />
+<TGConnectingPoint num="5" id="412" />
+<TGConnectingPoint num="6" id="413" />
+<TGConnectingPoint num="7" id="414" />
 <extraparam>
-<Prop commName="receive" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<info hiddeni="false" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="346" >
+<father id="415" num="0" />
+<cdparam x="1232" y="328" />
+<sizeparam width="140" height="141" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="430" minY="0" maxY="344" />
+<infoparam name="TGComponent" value="Timer" />
+<TGConnectingPoint num="0" id="338" />
+<TGConnectingPoint num="1" id="339" />
+<TGConnectingPoint num="2" id="340" />
+<TGConnectingPoint num="3" id="341" />
+<TGConnectingPoint num="4" id="342" />
+<TGConnectingPoint num="5" id="343" />
+<TGConnectingPoint num="6" id="344" />
+<TGConnectingPoint num="7" id="345" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="333" >
+<father id="346" num="0" />
+<cdparam x="1222" y="368" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
+<infoparam name="TGComponent" value="Event timeOut" />
+<TGConnectingPoint num="0" id="332" />
+<extraparam>
+<Prop commName="timeOut" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1296,16 +1292,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="344" >
-<father id="369" num="5" />
-<cdparam x="721" y="235" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="335" >
+<father id="346" num="1" />
+<cdparam x="1222" y="403" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromPtoT" />
-<TGConnectingPoint num="0" id="343" />
+<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
+<infoparam name="TGComponent" value="Request req_Timer" />
+<TGConnectingPoint num="0" id="334" />
 <extraparam>
-<Prop commName="fromPtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="req_Timer" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1313,16 +1309,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="346" >
-<father id="369" num="6" />
-<cdparam x="721" y="269" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="337" >
+<father id="346" num="2" />
+<cdparam x="1222" y="431" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromTtoP" />
-<TGConnectingPoint num="0" id="345" />
+<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
+<infoparam name="TGComponent" value="Event stop" />
+<TGConnectingPoint num="0" id="336" />
 <extraparam>
-<Prop commName="fromTtoP" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="stop" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1330,33 +1326,68 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="348" >
-<father id="369" num="7" />
-<cdparam x="521" y="156" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1201" id="365" >
+<father id="415" num="1" />
+<cdparam x="828" y="362" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event data_Ready" />
+<cdrectangleparam minX="-13" maxX="557" minY="-13" maxY="472" />
+<infoparam name="Composite port" value="" />
 <TGConnectingPoint num="0" id="347" />
+<TGConnectingPoint num="1" id="348" />
+<TGConnectingPoint num="2" id="349" />
+<TGConnectingPoint num="3" id="350" />
+<TGConnectingPoint num="4" id="351" />
+<TGConnectingPoint num="5" id="352" />
+<TGConnectingPoint num="6" id="353" />
+<TGConnectingPoint num="7" id="354" />
+<TGConnectingPoint num="8" id="355" />
+<TGConnectingPoint num="9" id="356" />
+<TGConnectingPoint num="10" id="357" />
+<TGConnectingPoint num="11" id="358" />
+<TGConnectingPoint num="12" id="359" />
+<TGConnectingPoint num="13" id="360" />
+<TGConnectingPoint num="14" id="361" />
+<TGConnectingPoint num="15" id="362" />
+<TGConnectingPoint num="16" id="363" />
+<TGConnectingPoint num="17" id="364" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="406" >
+<father id="415" num="2" />
+<cdparam x="931" y="167" />
+<sizeparam width="236" height="317" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="334" minY="0" maxY="168" />
+<infoparam name="TGComponent" value="TCPIP" />
+<TGConnectingPoint num="0" id="398" />
+<TGConnectingPoint num="1" id="399" />
+<TGConnectingPoint num="2" id="400" />
+<TGConnectingPoint num="3" id="401" />
+<TGConnectingPoint num="4" id="402" />
+<TGConnectingPoint num="5" id="403" />
+<TGConnectingPoint num="6" id="404" />
+<TGConnectingPoint num="7" id="405" />
 <extraparam>
-<Prop commName="data_Ready" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
-<Type type="2" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Data isAttacker="No" />
+<Attribute access="2" id="wind" value="64" type="0" typeOther="" />
+<Attribute access="2" id="seqNum" value="0" type="0" typeOther="" />
+<Attribute access="2" id="i" value="" type="0" typeOther="" />
+<Attribute access="2" id="j" value="" type="0" typeOther="" />
+<Attribute access="2" id="a" value="0" type="0" typeOther="" />
+<Attribute access="2" id="b" value="0" type="0" typeOther="" />
+<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="350" >
-<father id="369" num="8" />
-<cdparam x="521" y="290" />
+<SUBCOMPONENT type="1203" id="367" >
+<father id="406" num="0" />
+<cdparam x="918" y="185" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event data_Ready_SC" />
-<TGConnectingPoint num="0" id="349" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Event send" />
+<TGConnectingPoint num="0" id="366" />
 <extraparam>
-<Prop commName="data_Ready_SC" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="send" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1364,17 +1395,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="352" >
-<father id="369" num="9" />
-<reference id="184" />
-<cdparam x="521" y="202" />
+<SUBCOMPONENT type="1203" id="369" >
+<father id="406" num="1" />
+<cdparam x="918" y="235" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromDtoSC" />
-<TGConnectingPoint num="0" id="351" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Event receive" />
+<TGConnectingPoint num="0" id="368" />
 <extraparam>
-<Prop commName="fromDtoSC" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="null" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="receive" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1382,17 +1412,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="354" >
-<father id="369" num="10" />
-<reference id="184" />
-<cdparam x="521" y="247" />
+<SUBCOMPONENT type="1203" id="371" >
+<father id="406" num="2" />
+<cdparam x="918" y="278" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromSCtoD" />
-<TGConnectingPoint num="0" id="353" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Channel fromPtoT" />
+<TGConnectingPoint num="0" id="370" />
 <extraparam>
-<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromPtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1400,16 +1429,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="356" >
-<father id="369" num="11" />
-<cdparam x="543" y="321" />
+<SUBCOMPONENT type="1203" id="373" >
+<father id="406" num="3" />
+<cdparam x="918" y="317" />
 <sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
-<TGConnectingPoint num="0" id="355" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Channel fromTtoP" />
+<TGConnectingPoint num="0" id="372" />
 <extraparam>
-<Prop commName="answerToReset, pTSConfirm" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromTtoP" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1417,17 +1446,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="358" >
-<father id="369" num="12" />
-<reference id="184" />
-<cdparam x="580" y="84" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="375" >
+<father id="406" num="4" />
+<cdparam x="921" y="352" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event reset, pTS, end" />
-<TGConnectingPoint num="0" id="357" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="374" />
 <extraparam>
-<Prop commName="reset, pTS, end" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="start_TCP_IP" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1435,16 +1463,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="360" >
-<father id="369" num="13" />
-<cdparam x="721" y="111" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="377" >
+<father id="406" num="5" />
+<cdparam x="921" y="443" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event send" />
-<TGConnectingPoint num="0" id="359" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event send_TCP" />
+<TGConnectingPoint num="0" id="376" />
 <extraparam>
-<Prop commName="send" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="send_TCP" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1452,35 +1480,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="396" >
-<father id="424" num="2" />
-<cdparam x="565" y="416" />
-<sizeparam width="240" height="145" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="695" minY="0" maxY="385" />
-<infoparam name="TGComponent" value="Application" />
-<TGConnectingPoint num="0" id="388" />
-<TGConnectingPoint num="1" id="389" />
-<TGConnectingPoint num="2" id="390" />
-<TGConnectingPoint num="3" id="391" />
-<TGConnectingPoint num="4" id="392" />
-<TGConnectingPoint num="5" id="393" />
-<TGConnectingPoint num="6" id="394" />
-<TGConnectingPoint num="7" id="395" />
-<extraparam>
-<Data isAttacker="No" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="371" >
-<father id="396" num="0" />
-<cdparam x="748" y="548" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="379" >
+<father id="406" num="6" />
+<cdparam x="921" y="416" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
-<infoparam name="Primitive port" value="Event opened" />
-<TGConnectingPoint num="0" id="370" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event open, abort, close" />
+<TGConnectingPoint num="0" id="378" />
 <extraparam>
-<Prop commName="opened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="open, abort, close" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1488,16 +1497,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="373" >
-<father id="396" num="1" />
-<cdparam x="697" y="403" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="381" >
+<father id="406" num="7" />
+<cdparam x="921" y="387" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
-<infoparam name="Primitive port" value="Event connectionOpened" />
-<TGConnectingPoint num="0" id="372" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel fromTtoA" />
+<TGConnectingPoint num="0" id="380" />
 <extraparam>
-<Prop commName="connectionOpened" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromTtoA" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1505,16 +1514,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="375" >
-<father id="396" num="2" />
-<cdparam x="659" y="406" />
+<SUBCOMPONENT type="1203" id="383" >
+<father id="406" num="8" />
+<cdparam x="959" y="474" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Request start_Application" />
-<TGConnectingPoint num="0" id="374" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel fromAtoT" />
+<TGConnectingPoint num="0" id="382" />
 <extraparam>
-<Prop commName="start_Application" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromAtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1522,16 +1531,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="377" >
-<father id="396" num="3" />
-<cdparam x="795" y="542" />
+<SUBCOMPONENT type="1203" id="385" >
+<father id="406" num="9" />
+<cdparam x="921" y="466" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Channel fromAtoT" />
-<TGConnectingPoint num="0" id="376" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event receive_Application" />
+<TGConnectingPoint num="0" id="384" />
 <extraparam>
-<Prop commName="fromAtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="receive_Application" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1539,16 +1548,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="379" >
-<father id="396" num="4" />
-<cdparam x="795" y="509" />
+<SUBCOMPONENT type="1203" id="387" >
+<father id="406" num="10" />
+<cdparam x="1157" y="370" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Event receive_Application" />
-<TGConnectingPoint num="0" id="378" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event timeOut" />
+<TGConnectingPoint num="0" id="386" />
 <extraparam>
-<Prop commName="receive_Application" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="timeOut" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1556,16 +1565,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="381" >
-<father id="396" num="5" />
-<cdparam x="795" y="448" />
+<SUBCOMPONENT type="1203" id="389" >
+<father id="406" num="11" />
+<cdparam x="1157" y="405" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Event open, abort, close" />
-<TGConnectingPoint num="0" id="380" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Request req_Timer" />
+<TGConnectingPoint num="0" id="388" />
 <extraparam>
-<Prop commName="open, abort, close" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="req_Timer" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1573,16 +1582,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="383" >
-<father id="396" num="6" />
-<cdparam x="795" y="481" />
+<SUBCOMPONENT type="1203" id="391" >
+<father id="406" num="12" />
+<cdparam x="1157" y="198" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Event send_TCP" />
-<TGConnectingPoint num="0" id="382" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel temp" />
+<TGConnectingPoint num="0" id="390" />
 <extraparam>
-<Prop commName="send_TCP" commType="1" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="temp" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1590,16 +1599,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="385" >
-<father id="396" num="7" />
-<cdparam x="795" y="419" />
+<SUBCOMPONENT type="1203" id="393" >
+<father id="406" num="13" />
+<cdparam x="1157" y="266" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Channel fromTtoA" />
-<TGConnectingPoint num="0" id="384" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel temp" />
+<TGConnectingPoint num="0" id="392" />
 <extraparam>
-<Prop commName="fromTtoA" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="temp" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1607,16 +1616,16 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="387" >
-<father id="396" num="8" />
-<cdparam x="741" y="406" />
+<SUBCOMPONENT type="1203" id="395" >
+<father id="406" num="14" />
+<cdparam x="1157" y="444" />
 <sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Request start_TCP_IP" />
-<TGConnectingPoint num="0" id="386" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event stop" />
+<TGConnectingPoint num="0" id="394" />
 <extraparam>
-<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="stop" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1624,31 +1633,22 @@
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="415" >
-<father id="424" num="3" />
-<cdparam x="521" y="369" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="397" >
+<father id="406" num="15" />
+<cdparam x="1012" y="471" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="922" minY="-13" maxY="517" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="397" />
-<TGConnectingPoint num="1" id="398" />
-<TGConnectingPoint num="2" id="399" />
-<TGConnectingPoint num="3" id="400" />
-<TGConnectingPoint num="4" id="401" />
-<TGConnectingPoint num="5" id="402" />
-<TGConnectingPoint num="6" id="403" />
-<TGConnectingPoint num="7" id="404" />
-<TGConnectingPoint num="8" id="405" />
-<TGConnectingPoint num="9" id="406" />
-<TGConnectingPoint num="10" id="407" />
-<TGConnectingPoint num="11" id="408" />
-<TGConnectingPoint num="12" id="409" />
-<TGConnectingPoint num="13" id="410" />
-<TGConnectingPoint num="14" id="411" />
-<TGConnectingPoint num="15" id="412" />
-<TGConnectingPoint num="16" id="413" />
-<TGConnectingPoint num="17" id="414" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="Primitive port" value="Event opened" />
+<TGConnectingPoint num="0" id="396" />
+<extraparam>
+<Prop commName="opened" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
 
 
@@ -2147,8253 +2147,5717 @@
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="Application" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="530" >
-<cdparam x="505" y="259" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="TCPIP" minX="10" maxX="2900" minY="10" maxY="1900" >
+<COMPONENT type="1008" id="529" >
+<cdparam x="159" y="424" />
+<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="528" />
-<TGConnectingPoint num="1" id="529" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="opened()" />
+<TGConnectingPoint num="0" id="527" />
+<TGConnectingPoint num="1" id="528" />
+<extraparam>
+<Data eventName="opened" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="527" >
-<father id="530" num="0" />
-<cdparam x="520" y="279" />
-<sizeparam width="16" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1012" id="537" >
+<cdparam x="2086" y="1378" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="10" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="533" />
+<TGConnectingPoint num="1" id="534" />
+<TGConnectingPoint num="2" id="535" />
+<TGConnectingPoint num="3" id="536" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="530" >
+<father id="537" num="0" />
+<cdparam x="2061" y="1388" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="531" >
+<father id="537" num="1" />
+<cdparam x="2121" y="1388" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="532" >
+<father id="537" num="2" />
+<cdparam x="2106" y="1426" />
+<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==10 ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1010" id="533" >
-<cdparam x="479" y="129" />
-<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="545" >
+<cdparam x="2262" y="951" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="opened() " />
-<TGConnectingPoint num="0" id="531" />
-<TGConnectingPoint num="1" id="532" />
-<extraparam>
-<Data eventName="opened" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="541" />
+<TGConnectingPoint num="1" id="542" />
+<TGConnectingPoint num="2" id="543" />
+<TGConnectingPoint num="3" id="544" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="538" >
+<father id="545" num="0" />
+<cdparam x="2212" y="961" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==1 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="539" >
+<father id="545" num="1" />
+<cdparam x="2301" y="975" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ tcpctrl.state ==3 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="540" >
+<father id="545" num="2" />
+<cdparam x="2282" y="996" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ else ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="536" >
-<cdparam x="449" y="192" />
-<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="553" >
+<cdparam x="1981" y="1346" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="connectionOpened()" />
-<TGConnectingPoint num="0" id="534" />
-<TGConnectingPoint num="1" id="535" />
-<extraparam>
-<Data eventName="connectionOpened" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="549" />
+<TGConnectingPoint num="1" id="550" />
+<TGConnectingPoint num="2" id="551" />
+<TGConnectingPoint num="3" id="552" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="546" >
+<father id="553" num="0" />
+<cdparam x="1934" y="1356" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==5 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="547" >
+<father id="553" num="1" />
+<cdparam x="2016" y="1356" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="548" >
+<father id="553" num="2" />
+<cdparam x="2001" y="1391" />
+<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state == 7 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="561" >
+<cdparam x="1811" y="1269" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="557" />
+<TGConnectingPoint num="1" id="558" />
+<TGConnectingPoint num="2" id="559" />
+<TGConnectingPoint num="3" id="560" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="554" >
+<father id="561" num="0" />
+<cdparam x="1762" y="1279" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="555" >
+<father id="561" num="1" />
+<cdparam x="1846" y="1279" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="556" >
+<father id="561" num="2" />
+<cdparam x="1831" y="1314" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==2 ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="544" >
-<cdparam x="495" y="514" />
+<COMPONENT type="1012" id="569" >
+<cdparam x="1713" y="1141" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="540" />
-<TGConnectingPoint num="1" id="541" />
-<TGConnectingPoint num="2" id="542" />
-<TGConnectingPoint num="3" id="543" />
+<TGConnectingPoint num="0" id="565" />
+<TGConnectingPoint num="1" id="566" />
+<TGConnectingPoint num="2" id="567" />
+<TGConnectingPoint num="3" id="568" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="537" >
-<father id="544" num="0" />
-<cdparam x="470" y="524" />
+<SUBCOMPONENT type="-1" id="562" >
+<father id="569" num="0" />
+<cdparam x="1688" y="1151" />
 <sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
 <infoparam name="guard 1" value="[ ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="538" >
-<father id="544" num="1" />
-<cdparam x="530" y="524" />
+<SUBCOMPONENT type="-1" id="563" >
+<father id="569" num="1" />
+<cdparam x="1748" y="1151" />
 <sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
 <infoparam name="guard 2" value="[ ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="539" >
-<father id="544" num="2" />
-<cdparam x="515" y="559" />
+<SUBCOMPONENT type="-1" id="564" >
+<father id="569" num="2" />
+<cdparam x="1733" y="1186" />
 <sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1000" id="546" >
-<cdparam x="498" y="33" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="573" >
+<cdparam x="1524" y="1254" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="545" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="571" />
+<TGConnectingPoint num="1" id="572" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="570" >
+<father id="573" num="0" />
+<cdparam x="1539" y="1274" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="549" >
-<cdparam x="482" y="71" />
-<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="577" >
+<cdparam x="1524" y="1064" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="open()" />
-<TGConnectingPoint num="0" id="547" />
-<TGConnectingPoint num="1" id="548" />
-<extraparam>
-<Data eventName="open" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="575" />
+<TGConnectingPoint num="1" id="576" />
 </COMPONENT>
-
-<COMPONENT type="1006" id="552" >
-<cdparam x="469" y="353" />
-<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="574" >
+<father id="577" num="0" />
+<cdparam x="1538" y="1088" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="fromAtoT(1)" />
-<TGConnectingPoint num="0" id="550" />
-<TGConnectingPoint num="1" id="551" />
-<extraparam>
-<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="555" >
-<cdparam x="471" y="399" />
-<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="585" >
+<cdparam x="1592" y="1006" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="send_TCP()" />
-<TGConnectingPoint num="0" id="553" />
-<TGConnectingPoint num="1" id="554" />
-<accessibility />
-<extraparam>
-<Data eventName="send_TCP" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="581" />
+<TGConnectingPoint num="1" id="582" />
+<TGConnectingPoint num="2" id="583" />
+<TGConnectingPoint num="3" id="584" />
 </COMPONENT>
-
-<COMPONENT type="1001" id="557" >
-<cdparam x="577" y="648" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="578" >
+<father id="585" num="0" />
+<cdparam x="1542" y="1016" />
+<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="556" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="560" >
-<cdparam x="563" y="589" />
-<sizeparam width="49" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state  == 4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="579" >
+<father id="585" num="1" />
+<cdparam x="1627" y="1016" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="abort()" />
-<TGConnectingPoint num="0" id="558" />
-<TGConnectingPoint num="1" id="559" />
-<extraparam>
-<Data eventName="abort" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="563" >
-<cdparam x="410" y="597" />
-<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="580" >
+<father id="585" num="2" />
+<cdparam x="1612" y="1051" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="close()" />
-<TGConnectingPoint num="0" id="561" />
-<TGConnectingPoint num="1" id="562" />
-<extraparam>
-<Data eventName="close" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="565" >
-<cdparam x="423" y="646" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="593" >
+<cdparam x="1713" y="875" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="564" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="589" />
+<TGConnectingPoint num="1" id="590" />
+<TGConnectingPoint num="2" id="591" />
+<TGConnectingPoint num="3" id="592" />
 </COMPONENT>
-
-<CONNECTOR type="115" id="566" >
-<cdparam x="510" y="294" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="510" y="294" id="529" />
-<P2  x="509" y="348" id="550" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="567" >
-<cdparam x="508" y="424" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="508" y="424" id="554" />
-<P2  x="510" y="504" id="540" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="568" >
-<cdparam x="512" y="154" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="512" y="154" id="532" />
-<P2  x="511" y="187" id="534" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="569" >
-<cdparam x="594" y="221" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="511" y="217" id="535" />
-<P2  x="510" y="254" id="528" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="570" >
-<cdparam x="506" y="36" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to send event" value="null" />
-<P1  x="505" y="53" id="545" />
-<P2  x="505" y="66" id="547" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="571" >
-<cdparam x="508" y="154" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to write channel" value="null" />
-<P1  x="505" y="96" id="548" />
-<P2  x="512" y="124" id="531" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="572" >
-<cdparam x="509" y="397" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="509" y="378" id="551" />
-<P2  x="508" y="394" id="553" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="573" >
-<cdparam x="587" y="614" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="587" y="614" id="559" />
-<P2  x="587" y="643" id="556" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="574" >
-<cdparam x="471" y="608" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to send event" value="null" />
-<P1  x="470" y="529" id="541" />
-<P2  x="433" y="592" id="561" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="575" >
-<cdparam x="433" y="622" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="433" y="622" id="562" />
-<P2  x="433" y="641" id="564" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="576" >
-<cdparam x="551" y="608" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to send event" value="null" />
-<P1  x="550" y="529" id="542" />
-<P2  x="587" y="584" id="558" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1001" id="578" >
-<cdparam x="430" y="408" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="586" >
+<father id="593" num="0" />
+<cdparam x="1688" y="885" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="577" />
-</COMPONENT>
-
-<COMPONENT type="1010" id="581" >
-<cdparam x="418" y="364" />
-<sizeparam width="44" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="587" >
+<father id="593" num="1" />
+<cdparam x="1748" y="885" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="end() " />
-<TGConnectingPoint num="0" id="579" />
-<TGConnectingPoint num="1" id="580" />
-<extraparam>
-<Data eventName="end" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="584" >
-<cdparam x="238" y="201" />
-<sizeparam width="129" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="588" >
+<father id="593" num="2" />
+<cdparam x="1733" y="920" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="connectionOpened() " />
-<TGConnectingPoint num="0" id="582" />
-<TGConnectingPoint num="1" id="583" />
-<extraparam>
-<Data eventName="connectionOpened" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1000" id="586" >
-<cdparam x="159" y="66" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="597" >
+<cdparam x="1636" y="1235" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="585" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="595" />
+<TGConnectingPoint num="1" id="596" />
 </COMPONENT>
-
-<COMPONENT type="1010" id="589" >
-<cdparam x="141" y="129" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="594" >
+<father id="597" num="0" />
+<cdparam x="1655" y="1254" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="reset() " />
-<TGConnectingPoint num="0" id="587" />
-<TGConnectingPoint num="1" id="588" />
-<extraparam>
-<Data eventName="reset" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="592" >
-<cdparam x="113" y="182" />
-<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="601" >
+<cdparam x="2232" y="1059" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="answerToReset()" />
-<TGConnectingPoint num="0" id="590" />
-<TGConnectingPoint num="1" id="591" />
-<extraparam>
-<Data eventName="answerToReset" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="599" />
+<TGConnectingPoint num="1" id="600" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="598" >
+<father id="601" num="0" />
+<cdparam x="2219" y="1083" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1010" id="595" >
-<cdparam x="144" y="237" />
-<sizeparam width="44" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="605" >
+<cdparam x="2312" y="1024" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="pTS() " />
-<TGConnectingPoint num="0" id="593" />
-<TGConnectingPoint num="1" id="594" />
-<extraparam>
-<Data eventName="pTS" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="603" />
+<TGConnectingPoint num="1" id="604" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="602" >
+<father id="605" num="0" />
+<cdparam x="2288" y="1044" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="598" >
-<cdparam x="124" y="308" />
-<sizeparam width="85" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="613" >
+<cdparam x="1193" y="1020" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="pTSConfirm()" />
-<TGConnectingPoint num="0" id="596" />
-<TGConnectingPoint num="1" id="597" />
-<extraparam>
-<Data eventName="pTSConfirm" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="609" />
+<TGConnectingPoint num="1" id="610" />
+<TGConnectingPoint num="2" id="611" />
+<TGConnectingPoint num="3" id="612" />
 </COMPONENT>
-
-<COMPONENT type="301" id="615" >
-<cdparam x="376" y="98" />
-<sizeparam width="233" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="606" >
+<father id="613" num="0" />
+<cdparam x="1168" y="1030" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="UML Note" value="The first two layers of the OSI model 
-are used to communicate between 
-the smart card and the terminal
-" />
-<TGConnectingPoint num="0" id="599" />
-<TGConnectingPoint num="1" id="600" />
-<TGConnectingPoint num="2" id="601" />
-<TGConnectingPoint num="3" id="602" />
-<TGConnectingPoint num="4" id="603" />
-<TGConnectingPoint num="5" id="604" />
-<TGConnectingPoint num="6" id="605" />
-<TGConnectingPoint num="7" id="606" />
-<TGConnectingPoint num="8" id="607" />
-<TGConnectingPoint num="9" id="608" />
-<TGConnectingPoint num="10" id="609" />
-<TGConnectingPoint num="11" id="610" />
-<TGConnectingPoint num="12" id="611" />
-<TGConnectingPoint num="13" id="612" />
-<TGConnectingPoint num="14" id="613" />
-<TGConnectingPoint num="15" id="614" />
-<extraparam>
-<Line value="The first two layers of the OSI model " />
-<Line value="are used to communicate between " />
-<Line value="the smart card and the terminal" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1007" id="618" >
-<cdparam x="254" y="97" />
-<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="607" >
+<father id="613" num="1" />
+<cdparam x="1228" y="1030" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="start_TCP_IP()" />
-<TGConnectingPoint num="0" id="616" />
-<TGConnectingPoint num="1" id="617" />
-<extraparam>
-<Data requestName="start_TCP_IP" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1007" id="621" >
-<cdparam x="241" y="148" />
-<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="608" >
+<father id="613" num="2" />
+<cdparam x="1213" y="1065" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="start_Application()" />
-<TGConnectingPoint num="0" id="619" />
-<TGConnectingPoint num="1" id="620" />
-<breakpoint />
-<extraparam>
-<Data requestName="start_Application" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==6 ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="623" >
-<cdparam x="581" y="550" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="617" >
+<cdparam x="1203" y="1107" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="622" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="615" />
+<TGConnectingPoint num="1" id="616" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="614" >
+<father id="617" num="0" />
+<cdparam x="1218" y="1127" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="626" >
-<cdparam x="240" y="471" />
-<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="625" >
+<cdparam x="557" y="712" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="data_Ready_SC()" />
-<TGConnectingPoint num="0" id="624" />
-<TGConnectingPoint num="1" id="625" />
-<extraparam>
-<Data eventName="data_Ready_SC" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="621" />
+<TGConnectingPoint num="1" id="622" />
+<TGConnectingPoint num="2" id="623" />
+<TGConnectingPoint num="3" id="624" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="618" >
+<father id="625" num="0" />
+<cdparam x="482" y="747" />
+<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state == 1 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="619" >
+<father id="625" num="1" />
+<cdparam x="592" y="722" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="620" >
+<father id="625" num="2" />
+<cdparam x="577" y="757" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="628" >
-<cdparam x="283" y="547" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="629" >
+<cdparam x="717" y="694" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
 <TGConnectingPoint num="0" id="627" />
+<TGConnectingPoint num="1" id="628" />
 </COMPONENT>
-
-<COMPONENT type="1009" id="631" >
-<cdparam x="252" y="429" />
-<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="626" >
+<father id="629" num="0" />
+<cdparam x="732" y="714" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read channel" value="fromTtoP(1) " />
-<TGConnectingPoint num="0" id="629" />
-<TGConnectingPoint num="1" id="630" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1010" id="634" >
-<cdparam x="268" y="385" />
-<sizeparam width="50" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="633" >
+<cdparam x="938" y="1025" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="send() " />
-<TGConnectingPoint num="0" id="632" />
-<TGConnectingPoint num="1" id="633" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="631" />
+<TGConnectingPoint num="1" id="632" />
 </COMPONENT>
-
-<COMPONENT type="1006" id="637" >
-<cdparam x="250" y="513" />
-<sizeparam width="87" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="630" >
+<father id="633" num="0" />
+<cdparam x="953" y="1045" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="fromSCtoD(1)" />
-<TGConnectingPoint num="0" id="635" />
-<TGConnectingPoint num="1" id="636" />
-<extraparam>
-<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="640" >
-<cdparam x="562" y="472" />
-<sizeparam width="59" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="641" >
+<cdparam x="1034" y="939" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="receive()" />
-<TGConnectingPoint num="0" id="638" />
-<TGConnectingPoint num="1" id="639" />
-<extraparam>
-<Data eventName="receive" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="637" />
+<TGConnectingPoint num="1" id="638" />
+<TGConnectingPoint num="2" id="639" />
+<TGConnectingPoint num="3" id="640" />
 </COMPONENT>
-
-<COMPONENT type="1009" id="643" >
-<cdparam x="546" y="433" />
-<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="634" >
+<father id="641" num="0" />
+<cdparam x="959" y="974" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read channel" value="fromDtoSC(1) " />
-<TGConnectingPoint num="0" id="641" />
-<TGConnectingPoint num="1" id="642" />
-<extraparam>
-<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1006" id="646" >
-<cdparam x="552" y="509" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="635" >
+<father id="641" num="1" />
+<cdparam x="1070" y="949" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="fromPtoT(1)" />
-<TGConnectingPoint num="0" id="644" />
-<TGConnectingPoint num="1" id="645" />
-<extraparam>
-<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="649" >
-<cdparam x="536" y="390" />
-<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="636" >
+<father id="641" num="2" />
+<cdparam x="1054" y="984" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="data_Ready(t, b) " />
-<TGConnectingPoint num="0" id="647" />
-<TGConnectingPoint num="1" id="648" />
-<breakpoint />
-<extraparam>
-<Data eventName="data_Ready" nbOfParams="5" />
-<Param index="0" value="t" />
-<Param index="1" value="b" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state == 5]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1014" id="653" >
-<cdparam x="236" y="261" />
-<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="645" >
+<cdparam x="795" y="1009" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="for loop" value="for(j=0;x==0;j = j)" />
-<TGConnectingPoint num="0" id="650" />
-<TGConnectingPoint num="1" id="651" />
-<TGConnectingPoint num="2" id="652" />
-<extraparam>
-<Data init="j=0" condition="x==0" increment="j = j" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="643" />
+<TGConnectingPoint num="1" id="644" />
 </COMPONENT>
-
-<COMPONENT type="1001" id="655" >
-<cdparam x="275" y="309" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="642" >
+<father id="645" num="0" />
+<cdparam x="818" y="1031" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="654" />
-</COMPONENT>
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1018" id="666" >
-<cdparam x="424" y="285" />
+<COMPONENT type="1012" id="653" >
+<cdparam x="828" y="869" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="select" value="null" />
-<TGConnectingPoint num="0" id="656" />
-<TGConnectingPoint num="1" id="657" />
-<TGConnectingPoint num="2" id="658" />
-<TGConnectingPoint num="3" id="659" />
-<TGConnectingPoint num="4" id="660" />
-<TGConnectingPoint num="5" id="661" />
-<TGConnectingPoint num="6" id="662" />
-<TGConnectingPoint num="7" id="663" />
-<TGConnectingPoint num="8" id="664" />
-<TGConnectingPoint num="9" id="665" />
-</COMPONENT>
-
-<CONNECTOR type="115" id="667" >
-<cdparam x="302" y="227" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="302" y="226" id="583" />
-<P2  x="298" y="256" id="650" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="672" >
-<cdparam x="111" y="331" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to send request" value="null" />
-<P1  x="166" y="333" id="597" />
-<P2  x="298" y="92" id="616" />
-<Point x="166" y="353" />
-<Point x="225" y="353" />
-<Point x="225" y="72" />
-<Point x="278" y="72" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="668" >
-<father id="672" num="0" />
-<cdparam x="166" y="353" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="649" />
+<TGConnectingPoint num="1" id="650" />
+<TGConnectingPoint num="2" id="651" />
+<TGConnectingPoint num="3" id="652" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="646" >
+<father id="653" num="0" />
+<cdparam x="753" y="885" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==0 ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="669" >
-<father id="672" num="1" />
-<cdparam x="225" y="353" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="647" >
+<father id="653" num="1" />
+<cdparam x="863" y="879" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="670" >
-<father id="672" num="2" />
-<cdparam x="225" y="72" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="648" >
+<father id="653" num="2" />
+<cdparam x="848" y="914" />
+<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state==0 ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="671" >
-<father id="672" num="3" />
-<cdparam x="278" y="72" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1013" id="657" >
+<cdparam x="341" y="764" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="655" />
+<TGConnectingPoint num="1" id="656" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="654" >
+<father id="657" num="0" />
+<cdparam x="354" y="785" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="115" id="673" >
-<cdparam x="166" y="64" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to wait event" value="null" />
-<P1  x="166" y="86" id="585" />
-<P2  x="166" y="124" id="587" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="674" >
-<cdparam x="166" y="154" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to send event" value="null" />
-<P1  x="166" y="154" id="588" />
-<P2  x="166" y="177" id="590" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="675" >
-<cdparam x="312" y="133" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to send request" value="null" />
-<P1  x="298" y="122" id="617" />
-<P2  x="298" y="143" id="619" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="676" >
-<cdparam x="286" y="421" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="293" y="410" id="633" />
-<P2  x="293" y="424" id="629" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="677" >
-<cdparam x="286" y="486" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to send event" value="null" />
-<P1  x="293" y="454" id="630" />
-<P2  x="293" y="466" id="624" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="678" >
-<cdparam x="286" y="538" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to write channel" value="null" />
-<P1  x="293" y="496" id="625" />
-<P2  x="293" y="508" id="635" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="679" >
-<cdparam x="286" y="594" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="293" y="538" id="636" />
-<P2  x="293" y="542" id="627" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="680" >
-<cdparam x="607" y="480" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to send event" value="null" />
-<P1  x="591" y="458" id="642" />
-<P2  x="591" y="467" id="638" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="681" >
-<cdparam x="606" y="524" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to write channel" value="null" />
-<P1  x="591" y="497" id="639" />
-<P2  x="591" y="504" id="644" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="682" >
-<cdparam x="609" y="427" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="591" y="415" id="648" />
-<P2  x="591" y="428" id="641" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="683" >
-<cdparam x="606" y="586" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="591" y="534" id="645" />
-<P2  x="591" y="545" id="622" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="684" >
-<cdparam x="298" y="173" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to for loop" value="null" />
-<P1  x="298" y="173" id="620" />
-<P2  x="302" y="196" id="582" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="685" >
-<cdparam x="328" y="291" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from for loop to stop state" value="null" />
-<P1  x="298" y="286" id="652" />
-<P2  x="285" y="304" id="654" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="686" >
-<cdparam x="385" y="404" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from select to wait event" value="null" />
-<P1  x="399" y="300" id="657" />
-<P2  x="293" y="380" id="632" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="687" >
-<cdparam x="533" y="462" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from select to wait event" value="null" />
-<P1  x="479" y="300" id="658" />
-<P2  x="591" y="385" id="647" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="688" >
-<cdparam x="391" y="341" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from for loop to select" value="null" />
-<P1  x="361" y="275" id="651" />
-<P2  x="439" y="275" id="656" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="689" >
-<cdparam x="164" y="262" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to send event" value="null" />
-<P1  x="166" y="262" id="594" />
-<P2  x="166" y="303" id="596" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="690" >
-<cdparam x="166" y="207" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to wait event" value="null" />
-<P1  x="166" y="207" id="591" />
-<P2  x="166" y="232" id="593" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="691" >
-<cdparam x="439" y="340" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="439" y="340" id="659" />
-<P2  x="440" y="359" id="579" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="692" >
-<cdparam x="440" y="389" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="440" y="389" id="580" />
-<P2  x="440" y="403" id="577" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-
-</TMLActivityDiagramPanel>
+<COMPONENT type="1013" id="661" >
+<cdparam x="127" y="794" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="659" />
+<TGConnectingPoint num="1" id="660" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="658" >
+<father id="661" num="0" />
+<cdparam x="146" y="818" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<TMLActivityDiagramPanel name="Timer" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1012" id="700" >
-<cdparam x="509" y="222" />
+<COMPONENT type="1012" id="669" >
+<cdparam x="993" y="780" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="696" />
-<TGConnectingPoint num="1" id="697" />
-<TGConnectingPoint num="2" id="698" />
-<TGConnectingPoint num="3" id="699" />
+<TGConnectingPoint num="0" id="665" />
+<TGConnectingPoint num="1" id="666" />
+<TGConnectingPoint num="2" id="667" />
+<TGConnectingPoint num="3" id="668" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="693" >
-<father id="700" num="0" />
-<cdparam x="464" y="232" />
-<sizeparam width="51" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="662" >
+<father id="669" num="0" />
+<cdparam x="949" y="793" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ x==0 ]" />
+<infoparam name="guard 1" value="[ ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="694" >
-<father id="700" num="1" />
-<cdparam x="544" y="234" />
-<sizeparam width="41" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="663" >
+<father id="669" num="1" />
+<cdparam x="1028" y="790" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ x&gt;0 ]" />
+<infoparam name="guard 2" value="[ ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="695" >
-<father id="700" num="2" />
-<cdparam x="529" y="267" />
+<SUBCOMPONENT type="-1" id="664" >
+<father id="669" num="2" />
+<cdparam x="1013" y="825" />
 <sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1000" id="702" >
-<cdparam x="489" y="26" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="673" >
+<cdparam x="1003" y="701" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="701" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="671" />
+<TGConnectingPoint num="1" id="672" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="670" >
+<father id="673" num="0" />
+<cdparam x="1018" y="721" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="704" >
-<cdparam x="417" y="407" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="677" >
+<cdparam x="459" y="783" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="703" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="675" />
+<TGConnectingPoint num="1" id="676" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="674" >
+<father id="677" num="0" />
+<cdparam x="474" y="802" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="707" >
-<cdparam x="396" y="339" />
-<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="681" >
+<cdparam x="225" y="863" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="timeOut()" />
-<TGConnectingPoint num="0" id="705" />
-<TGConnectingPoint num="1" id="706" />
-<extraparam>
-<Data eventName="timeOut" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="679" />
+<TGConnectingPoint num="1" id="680" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="678" >
+<father id="681" num="0" />
+<cdparam x="245" y="885" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1010" id="710" >
-<cdparam x="599" y="300" />
-<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="685" >
+<cdparam x="1044" y="1057" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="stop() " />
-<TGConnectingPoint num="0" id="708" />
-<TGConnectingPoint num="1" id="709" />
-<extraparam>
-<Data eventName="stop" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="683" />
+<TGConnectingPoint num="1" id="684" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="682" >
+<father id="685" num="0" />
+<cdparam x="1059" y="1077" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="712" >
-<cdparam x="612" y="365" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="693" >
+<cdparam x="173" y="486" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="711" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="689" />
+<TGConnectingPoint num="1" id="690" />
+<TGConnectingPoint num="2" id="691" />
+<TGConnectingPoint num="3" id="692" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="686" >
+<father id="693" num="0" />
+<cdparam x="98" y="496" />
+<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="687" >
+<father id="693" num="1" />
+<cdparam x="208" y="496" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="688" >
+<father id="693" num="2" />
+<cdparam x="193" y="531" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1017" id="715" >
-<cdparam x="491" y="157" />
-<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="701" >
+<cdparam x="359" y="192" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="notified event" value="x=?stop()" />
-<TGConnectingPoint num="0" id="713" />
-<TGConnectingPoint num="1" id="714" />
-<extraparam>
-<Data eventName="stop" variable="x" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="697" />
+<TGConnectingPoint num="1" id="698" />
+<TGConnectingPoint num="2" id="699" />
+<TGConnectingPoint num="3" id="700" />
 </COMPONENT>
-
-<CONNECTOR type="115" id="716" >
-<cdparam x="496" y="46" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="496" y="46" id="701" />
-<P2  x="526" y="152" id="713" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="717" >
-<cdparam x="484" y="237" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="484" y="237" id="697" />
-<P2  x="427" y="334" id="705" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="718" >
-<cdparam x="427" y="364" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="427" y="364" id="706" />
-<P2  x="427" y="402" id="703" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="719" >
-<cdparam x="622" y="325" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to stop state" value="null" />
-<P1  x="622" y="325" id="709" />
-<P2  x="622" y="360" id="711" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="720" >
-<cdparam x="524" y="175" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from notified event to choice" value="null" />
-<P1  x="526" y="182" id="714" />
-<P2  x="524" y="212" id="696" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="721" >
-<cdparam x="564" y="237" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="564" y="237" id="698" />
-<P2  x="622" y="295" id="708" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="TCPIP" minX="10" maxX="2900" minY="10" maxY="1900" >
-<COMPONENT type="1008" id="724" >
-<cdparam x="159" y="424" />
-<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="opened()" />
-<TGConnectingPoint num="0" id="722" />
-<TGConnectingPoint num="1" id="723" />
-<extraparam>
-<Data eventName="opened" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1012" id="732" >
-<cdparam x="2086" y="1378" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="728" />
-<TGConnectingPoint num="1" id="729" />
-<TGConnectingPoint num="2" id="730" />
-<TGConnectingPoint num="3" id="731" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="725" >
-<father id="732" num="0" />
-<cdparam x="2061" y="1388" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="726" >
-<father id="732" num="1" />
-<cdparam x="2121" y="1388" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="727" >
-<father id="732" num="2" />
-<cdparam x="2106" y="1426" />
-<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==10 ]" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1012" id="740" >
-<cdparam x="2262" y="951" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="736" />
-<TGConnectingPoint num="1" id="737" />
-<TGConnectingPoint num="2" id="738" />
-<TGConnectingPoint num="3" id="739" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="733" >
-<father id="740" num="0" />
-<cdparam x="2212" y="961" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="694" >
+<father id="701" num="0" />
+<cdparam x="317" y="202" />
+<sizeparam width="81" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==1 ]" />
+<infoparam name="guard 1" value="[ tcpctrl.a&gt;0 ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="734" >
-<father id="740" num="1" />
-<cdparam x="2301" y="975" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="695" >
+<father id="701" num="1" />
+<cdparam x="394" y="202" />
+<sizeparam width="91" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ tcpctrl.state ==3 ]" />
+<infoparam name="guard 2" value="[ tcpctrl.a==0 ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="735" >
-<father id="740" num="2" />
-<cdparam x="2282" y="996" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="696" >
+<father id="701" num="2" />
+<cdparam x="379" y="237" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ else ]" />
+<infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1012" id="748" >
-<cdparam x="1981" y="1346" />
+<COMPONENT type="1012" id="709" >
+<cdparam x="449" y="582" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="744" />
-<TGConnectingPoint num="1" id="745" />
-<TGConnectingPoint num="2" id="746" />
-<TGConnectingPoint num="3" id="747" />
+<TGConnectingPoint num="0" id="705" />
+<TGConnectingPoint num="1" id="706" />
+<TGConnectingPoint num="2" id="707" />
+<TGConnectingPoint num="3" id="708" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="741" >
-<father id="748" num="0" />
-<cdparam x="1934" y="1356" />
+<SUBCOMPONENT type="-1" id="702" >
+<father id="709" num="0" />
+<cdparam x="404" y="592" />
 <sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==5 ]" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==9 ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="742" >
-<father id="748" num="1" />
-<cdparam x="2016" y="1356" />
+<SUBCOMPONENT type="-1" id="703" >
+<father id="709" num="1" />
+<cdparam x="500" y="599" />
 <sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
 <infoparam name="guard 2" value="[ else ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="743" >
-<father id="748" num="2" />
-<cdparam x="2001" y="1391" />
-<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="704" >
+<father id="709" num="2" />
+<cdparam x="469" y="627" />
+<sizeparam width="252" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state == 7 ]" />
+<infoparam name="guard 3" value="[ (tcpctrl.state ==2) or (tcpctrl.state ==4) ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1012" id="756" >
-<cdparam x="1811" y="1269" />
+<COMPONENT type="1012" id="717" >
+<cdparam x="274" y="564" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="752" />
-<TGConnectingPoint num="1" id="753" />
-<TGConnectingPoint num="2" id="754" />
-<TGConnectingPoint num="3" id="755" />
+<TGConnectingPoint num="0" id="713" />
+<TGConnectingPoint num="1" id="714" />
+<TGConnectingPoint num="2" id="715" />
+<TGConnectingPoint num="3" id="716" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="749" >
-<father id="756" num="0" />
-<cdparam x="1762" y="1279" />
+<SUBCOMPONENT type="-1" id="710" >
+<father id="717" num="0" />
+<cdparam x="228" y="574" />
 <sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
+<infoparam name="guard 1" value="[ tcpctrl.state == 1]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="750" >
-<father id="756" num="1" />
-<cdparam x="1846" y="1279" />
+<SUBCOMPONENT type="-1" id="711" >
+<father id="717" num="1" />
+<cdparam x="317" y="584" />
 <sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
 <infoparam name="guard 2" value="[ else ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="751" >
-<father id="756" num="2" />
-<cdparam x="1831" y="1314" />
+<SUBCOMPONENT type="-1" id="712" >
+<father id="717" num="2" />
+<cdparam x="306" y="616" />
 <sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==2 ]" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==4 ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1012" id="764" >
-<cdparam x="1713" y="1141" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="719" >
+<cdparam x="227" y="27" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="760" />
-<TGConnectingPoint num="1" id="761" />
-<TGConnectingPoint num="2" id="762" />
-<TGConnectingPoint num="3" id="763" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="718" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="757" >
-<father id="764" num="0" />
-<cdparam x="1688" y="1151" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="758" >
-<father id="764" num="1" />
-<cdparam x="1748" y="1151" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="759" >
-<father id="764" num="2" />
-<cdparam x="1733" y="1186" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="768" >
-<cdparam x="1524" y="1254" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="736" >
+<cdparam x="10" y="30" />
+<sizeparam width="92" height="135" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="766" />
-<TGConnectingPoint num="1" id="767" />
+<infoparam name="UML Note" value="0: closed
+1: Listen
+2: SYN rcvd
+3: SYN sent
+4: Estab
+5: Fin wait1
+6: Fin wait2
+7: closing
+8: Time wait
+9: close wait
+10:last ack
+" />
+<TGConnectingPoint num="0" id="720" />
+<TGConnectingPoint num="1" id="721" />
+<TGConnectingPoint num="2" id="722" />
+<TGConnectingPoint num="3" id="723" />
+<TGConnectingPoint num="4" id="724" />
+<TGConnectingPoint num="5" id="725" />
+<TGConnectingPoint num="6" id="726" />
+<TGConnectingPoint num="7" id="727" />
+<TGConnectingPoint num="8" id="728" />
+<TGConnectingPoint num="9" id="729" />
+<TGConnectingPoint num="10" id="730" />
+<TGConnectingPoint num="11" id="731" />
+<TGConnectingPoint num="12" id="732" />
+<TGConnectingPoint num="13" id="733" />
+<TGConnectingPoint num="14" id="734" />
+<TGConnectingPoint num="15" id="735" />
+<extraparam>
+<Line value="0: closed" />
+<Line value="1: Listen" />
+<Line value="2: SYN rcvd" />
+<Line value="3: SYN sent" />
+<Line value="4: Estab" />
+<Line value="5: Fin wait1" />
+<Line value="6: Fin wait2" />
+<Line value="7: closing" />
+<Line value="8: Time wait" />
+<Line value="9: close wait" />
+<Line value="10:last ack" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="765" >
-<father id="768" num="0" />
-<cdparam x="1539" y="1274" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="772" >
-<cdparam x="1524" y="1064" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="739" >
+<cdparam x="98" y="549" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="770" />
-<TGConnectingPoint num="1" id="771" />
+<infoparam name="action state" value="tcpctrl.state =1" />
+<TGConnectingPoint num="0" id="737" />
+<TGConnectingPoint num="1" id="738" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="769" >
-<father id="772" num="0" />
-<cdparam x="1538" y="1088" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="780" >
-<cdparam x="1592" y="1006" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="741" >
+<cdparam x="138" y="615" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="776" />
-<TGConnectingPoint num="1" id="777" />
-<TGConnectingPoint num="2" id="778" />
-<TGConnectingPoint num="3" id="779" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="740" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="773" >
-<father id="780" num="0" />
-<cdparam x="1542" y="1016" />
-<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1009" id="744" >
+<cdparam x="967" y="585" />
+<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state  == 4 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="774" >
-<father id="780" num="1" />
-<cdparam x="1627" y="1016" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="fromPtoT(1) " />
+<TGConnectingPoint num="0" id="742" />
+<TGConnectingPoint num="1" id="743" />
+<extraparam>
+<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1014" id="748" >
+<cdparam x="150" y="85" />
+<sizeparam width="170" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="775" >
-<father id="780" num="2" />
-<cdparam x="1612" y="1051" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="for loop" value="for(i=0;(tcpctrl.a==0);i = i)" />
+<TGConnectingPoint num="0" id="745" />
+<TGConnectingPoint num="1" id="746" />
+<TGConnectingPoint num="2" id="747" />
+<extraparam>
+<Data init="i=0" condition="(tcpctrl.a==0)" increment="i = i" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="750" >
+<cdparam x="225" y="207" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="749" />
+</COMPONENT>
 
-<COMPONENT type="1012" id="788" >
-<cdparam x="1713" y="875" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="753" >
+<cdparam x="187" y="144" />
+<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="784" />
-<TGConnectingPoint num="1" id="785" />
-<TGConnectingPoint num="2" id="786" />
-<TGConnectingPoint num="3" id="787" />
+<infoparam name="action state" value="tcpctrl.state=0" />
+<TGConnectingPoint num="0" id="751" />
+<TGConnectingPoint num="1" id="752" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="781" >
-<father id="788" num="0" />
-<cdparam x="1688" y="885" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1017" id="756" >
+<cdparam x="316" y="133" />
+<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="782" >
-<father id="788" num="1" />
-<cdparam x="1748" y="885" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="783" >
-<father id="788" num="2" />
-<cdparam x="1733" y="920" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="notified event" value="tcpctrl.a=?abort()" />
+<TGConnectingPoint num="0" id="754" />
+<TGConnectingPoint num="1" id="755" />
+<extraparam>
+<Data eventName="abort" variable="tcpctrl.a" />
+</extraparam>
+</COMPONENT>
 
-<COMPONENT type="1013" id="792" >
-<cdparam x="1636" y="1235" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="759" >
+<cdparam x="692" y="589" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="790" />
-<TGConnectingPoint num="1" id="791" />
+<infoparam name="read channel" value="temp(1) " />
+<TGConnectingPoint num="0" id="757" />
+<TGConnectingPoint num="1" id="758" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="789" >
-<father id="792" num="0" />
-<cdparam x="1655" y="1254" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="796" >
-<cdparam x="2232" y="1059" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="762" >
+<cdparam x="689" y="534" />
+<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="794" />
-<TGConnectingPoint num="1" id="795" />
+<infoparam name="wait event" value="timeOut() " />
+<TGConnectingPoint num="0" id="760" />
+<TGConnectingPoint num="1" id="761" />
+<extraparam>
+<Data eventName="timeOut" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="793" >
-<father id="796" num="0" />
-<cdparam x="2219" y="1083" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="800" >
-<cdparam x="2312" y="1024" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="765" >
+<cdparam x="977" y="528" />
+<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="798" />
-<TGConnectingPoint num="1" id="799" />
+<infoparam name="wait event" value="receive() " />
+<TGConnectingPoint num="0" id="763" />
+<TGConnectingPoint num="1" id="764" />
+<extraparam>
+<Data eventName="receive" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="797" >
-<father id="800" num="0" />
-<cdparam x="2288" y="1044" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="808" >
-<cdparam x="1193" y="1020" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="768" >
+<cdparam x="439" y="492" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="804" />
-<TGConnectingPoint num="1" id="805" />
-<TGConnectingPoint num="2" id="806" />
-<TGConnectingPoint num="3" id="807" />
+<infoparam name="wait event" value="close() " />
+<TGConnectingPoint num="0" id="766" />
+<TGConnectingPoint num="1" id="767" />
+<extraparam>
+<Data eventName="close" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="801" >
-<father id="808" num="0" />
-<cdparam x="1168" y="1030" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="802" >
-<father id="808" num="1" />
-<cdparam x="1228" y="1030" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="803" >
-<father id="808" num="2" />
-<cdparam x="1213" y="1065" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==6 ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="812" >
-<cdparam x="1203" y="1107" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="771" >
+<cdparam x="250" y="468" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="810" />
-<TGConnectingPoint num="1" id="811" />
+<infoparam name="wait event" value="send_TCP() " />
+<TGConnectingPoint num="0" id="769" />
+<TGConnectingPoint num="1" id="770" />
+<extraparam>
+<Data eventName="send_TCP" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="809" >
-<father id="812" num="0" />
-<cdparam x="1218" y="1127" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1010" id="774" >
+<cdparam x="163" y="383" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="open() " />
+<TGConnectingPoint num="0" id="772" />
+<TGConnectingPoint num="1" id="773" />
+<breakpoint />
+<extraparam>
+<Data eventName="open" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
 
-<COMPONENT type="1012" id="820" >
-<cdparam x="557" y="712" />
+<COMPONENT type="1018" id="785" >
+<cdparam x="449" y="267" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="816" />
-<TGConnectingPoint num="1" id="817" />
-<TGConnectingPoint num="2" id="818" />
-<TGConnectingPoint num="3" id="819" />
+<infoparam name="select" value="null" />
+<TGConnectingPoint num="0" id="775" />
+<TGConnectingPoint num="1" id="776" />
+<TGConnectingPoint num="2" id="777" />
+<TGConnectingPoint num="3" id="778" />
+<TGConnectingPoint num="4" id="779" />
+<TGConnectingPoint num="5" id="780" />
+<TGConnectingPoint num="6" id="781" />
+<TGConnectingPoint num="7" id="782" />
+<TGConnectingPoint num="8" id="783" />
+<TGConnectingPoint num="9" id="784" />
+<breakpoint />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="813" >
-<father id="820" num="0" />
-<cdparam x="482" y="747" />
-<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state == 1 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="814" >
-<father id="820" num="1" />
-<cdparam x="592" y="722" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="815" >
-<father id="820" num="2" />
-<cdparam x="577" y="757" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="824" >
-<cdparam x="717" y="694" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="787" >
+<cdparam x="218" y="529" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="822" />
-<TGConnectingPoint num="1" id="823" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="786" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="821" >
-<father id="824" num="0" />
-<cdparam x="732" y="714" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="828" >
-<cdparam x="938" y="1025" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="789" >
+<cdparam x="319" y="614" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="826" />
-<TGConnectingPoint num="1" id="827" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="788" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="825" >
-<father id="828" num="0" />
-<cdparam x="953" y="1045" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="836" >
-<cdparam x="1034" y="939" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="792" >
+<cdparam x="275" y="228" />
+<sizeparam width="53" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="832" />
-<TGConnectingPoint num="1" id="833" />
-<TGConnectingPoint num="2" id="834" />
-<TGConnectingPoint num="3" id="835" />
+<infoparam name="wait event" value="abort() " />
+<TGConnectingPoint num="0" id="790" />
+<TGConnectingPoint num="1" id="791" />
+<extraparam>
+<Data eventName="abort" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="829" >
-<father id="836" num="0" />
-<cdparam x="959" y="974" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="830" >
-<father id="836" num="1" />
-<cdparam x="1070" y="949" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="831" >
-<father id="836" num="2" />
-<cdparam x="1054" y="984" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state == 5]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="840" >
-<cdparam x="795" y="1009" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="794" >
+<cdparam x="291" y="290" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="838" />
-<TGConnectingPoint num="1" id="839" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="793" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="837" >
-<father id="840" num="0" />
-<cdparam x="818" y="1031" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="848" >
-<cdparam x="828" y="869" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="811" >
+<cdparam x="602" y="86" />
+<sizeparam width="360" height="51" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="844" />
-<TGConnectingPoint num="1" id="845" />
-<TGConnectingPoint num="2" id="846" />
-<TGConnectingPoint num="3" id="847" />
+<infoparam name="UML Note" value="b est le nombre d&apos;instructions necessaires pour paquetiser
+ou depaquitiser un paquet TCP
+
+On prend b=1 comme exemple
+" />
+<TGConnectingPoint num="0" id="795" />
+<TGConnectingPoint num="1" id="796" />
+<TGConnectingPoint num="2" id="797" />
+<TGConnectingPoint num="3" id="798" />
+<TGConnectingPoint num="4" id="799" />
+<TGConnectingPoint num="5" id="800" />
+<TGConnectingPoint num="6" id="801" />
+<TGConnectingPoint num="7" id="802" />
+<TGConnectingPoint num="8" id="803" />
+<TGConnectingPoint num="9" id="804" />
+<TGConnectingPoint num="10" id="805" />
+<TGConnectingPoint num="11" id="806" />
+<TGConnectingPoint num="12" id="807" />
+<TGConnectingPoint num="13" id="808" />
+<TGConnectingPoint num="14" id="809" />
+<TGConnectingPoint num="15" id="810" />
+<extraparam>
+<Line value="b est le nombre d&apos;instructions necessaires pour paquetiser" />
+<Line value="ou depaquitiser un paquet TCP" />
+<Line value="" />
+<Line value="On prend b=1 comme exemple" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="841" >
-<father id="848" num="0" />
-<cdparam x="753" y="885" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="842" >
-<father id="848" num="1" />
-<cdparam x="863" y="879" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="843" >
-<father id="848" num="2" />
-<cdparam x="848" y="914" />
-<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state==0 ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="852" >
-<cdparam x="341" y="764" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="814" >
+<cdparam x="188" y="808" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="850" />
-<TGConnectingPoint num="1" id="851" />
+<infoparam name="read channel" value="fromAtoT(1) " />
+<TGConnectingPoint num="0" id="812" />
+<TGConnectingPoint num="1" id="813" />
+<extraparam>
+<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="849" >
-<father id="852" num="0" />
-<cdparam x="354" y="785" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="856" >
-<cdparam x="127" y="794" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="817" >
+<cdparam x="191" y="1002" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="854" />
-<TGConnectingPoint num="1" id="855" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="815" />
+<TGConnectingPoint num="1" id="816" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="853" >
-<father id="856" num="0" />
-<cdparam x="146" y="818" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="864" >
-<cdparam x="993" y="780" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="819" >
+<cdparam x="220" y="1237" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="860" />
-<TGConnectingPoint num="1" id="861" />
-<TGConnectingPoint num="2" id="862" />
-<TGConnectingPoint num="3" id="863" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="818" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="857" >
-<father id="864" num="0" />
-<cdparam x="949" y="793" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="858" >
-<father id="864" num="1" />
-<cdparam x="1028" y="790" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="859" >
-<father id="864" num="2" />
-<cdparam x="1013" y="825" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="868" >
-<cdparam x="1003" y="701" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="822" >
+<cdparam x="414" y="1032" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="866" />
-<TGConnectingPoint num="1" id="867" />
+<infoparam name="action state" value="tcpctrl.state =5" />
+<TGConnectingPoint num="0" id="820" />
+<TGConnectingPoint num="1" id="821" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="865" >
-<father id="868" num="0" />
-<cdparam x="1018" y="721" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="872" >
-<cdparam x="459" y="783" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="824" >
+<cdparam x="454" y="1213" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="870" />
-<TGConnectingPoint num="1" id="871" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="823" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="869" >
-<father id="872" num="0" />
-<cdparam x="474" y="802" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="876" >
-<cdparam x="225" y="863" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="827" >
+<cdparam x="84" y="1041" />
+<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="874" />
-<TGConnectingPoint num="1" id="875" />
+<infoparam name="action state" value="tcpctrl.state=3" />
+<TGConnectingPoint num="0" id="825" />
+<TGConnectingPoint num="1" id="826" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="873" >
-<father id="876" num="0" />
-<cdparam x="245" y="885" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1013" id="880" >
-<cdparam x="1044" y="1057" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="830" >
+<cdparam x="93" y="938" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="878" />
-<TGConnectingPoint num="1" id="879" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="828" />
+<TGConnectingPoint num="1" id="829" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="877" >
-<father id="880" num="0" />
-<cdparam x="1059" y="1077" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="888" >
-<cdparam x="173" y="486" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="833" >
+<cdparam x="292" y="1026" />
+<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="884" />
-<TGConnectingPoint num="1" id="885" />
-<TGConnectingPoint num="2" id="886" />
-<TGConnectingPoint num="3" id="887" />
+<infoparam name="action state" value="tcpctrl.state =10" />
+<TGConnectingPoint num="0" id="831" />
+<TGConnectingPoint num="1" id="832" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="881" >
-<father id="888" num="0" />
-<cdparam x="98" y="496" />
-<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state==0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="882" >
-<father id="888" num="1" />
-<cdparam x="208" y="496" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="883" >
-<father id="888" num="2" />
-<cdparam x="193" y="531" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="896" >
-<cdparam x="359" y="192" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="835" >
+<cdparam x="336" y="1229" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="892" />
-<TGConnectingPoint num="1" id="893" />
-<TGConnectingPoint num="2" id="894" />
-<TGConnectingPoint num="3" id="895" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="834" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="889" >
-<father id="896" num="0" />
-<cdparam x="317" y="202" />
-<sizeparam width="81" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.a&gt;0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="890" >
-<father id="896" num="1" />
-<cdparam x="394" y="202" />
-<sizeparam width="91" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ tcpctrl.a==0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="891" >
-<father id="896" num="2" />
-<cdparam x="379" y="237" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="904" >
-<cdparam x="449" y="582" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="838" >
+<cdparam x="425" y="941" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="900" />
-<TGConnectingPoint num="1" id="901" />
-<TGConnectingPoint num="2" id="902" />
-<TGConnectingPoint num="3" id="903" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="836" />
+<TGConnectingPoint num="1" id="837" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="897" >
-<father id="904" num="0" />
-<cdparam x="404" y="592" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==9 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="898" >
-<father id="904" num="1" />
-<cdparam x="500" y="599" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="899" >
-<father id="904" num="2" />
-<cdparam x="469" y="627" />
-<sizeparam width="252" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ (tcpctrl.state ==2) or (tcpctrl.state ==4) ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="912" >
-<cdparam x="274" y="564" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="841" >
+<cdparam x="307" y="900" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="908" />
-<TGConnectingPoint num="1" id="909" />
-<TGConnectingPoint num="2" id="910" />
-<TGConnectingPoint num="3" id="911" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="839" />
+<TGConnectingPoint num="1" id="840" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="905" >
-<father id="912" num="0" />
-<cdparam x="228" y="574" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state == 1]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="906" >
-<father id="912" num="1" />
-<cdparam x="317" y="584" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="907" >
-<father id="912" num="2" />
-<cdparam x="306" y="616" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==4 ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1000" id="914" >
-<cdparam x="227" y="27" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="843" >
+<cdparam x="790" y="1270" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="913" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="842" />
 </COMPONENT>
 
-<COMPONENT type="301" id="931" >
-<cdparam x="10" y="30" />
-<sizeparam width="92" height="135" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="860" >
+<cdparam x="998" y="850" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="0: closed
-1: Listen
-2: SYN rcvd
-3: SYN sent
-4: Estab
-5: Fin wait1
-6: Fin wait2
-7: closing
-8: Time wait
-9: close wait
-10:last ack
+<infoparam name="UML Note" value="Final
 " />
-<TGConnectingPoint num="0" id="915" />
-<TGConnectingPoint num="1" id="916" />
-<TGConnectingPoint num="2" id="917" />
-<TGConnectingPoint num="3" id="918" />
-<TGConnectingPoint num="4" id="919" />
-<TGConnectingPoint num="5" id="920" />
-<TGConnectingPoint num="6" id="921" />
-<TGConnectingPoint num="7" id="922" />
-<TGConnectingPoint num="8" id="923" />
-<TGConnectingPoint num="9" id="924" />
-<TGConnectingPoint num="10" id="925" />
-<TGConnectingPoint num="11" id="926" />
-<TGConnectingPoint num="12" id="927" />
-<TGConnectingPoint num="13" id="928" />
-<TGConnectingPoint num="14" id="929" />
-<TGConnectingPoint num="15" id="930" />
+<TGConnectingPoint num="0" id="844" />
+<TGConnectingPoint num="1" id="845" />
+<TGConnectingPoint num="2" id="846" />
+<TGConnectingPoint num="3" id="847" />
+<TGConnectingPoint num="4" id="848" />
+<TGConnectingPoint num="5" id="849" />
+<TGConnectingPoint num="6" id="850" />
+<TGConnectingPoint num="7" id="851" />
+<TGConnectingPoint num="8" id="852" />
+<TGConnectingPoint num="9" id="853" />
+<TGConnectingPoint num="10" id="854" />
+<TGConnectingPoint num="11" id="855" />
+<TGConnectingPoint num="12" id="856" />
+<TGConnectingPoint num="13" id="857" />
+<TGConnectingPoint num="14" id="858" />
+<TGConnectingPoint num="15" id="859" />
 <extraparam>
-<Line value="0: closed" />
-<Line value="1: Listen" />
-<Line value="2: SYN rcvd" />
-<Line value="3: SYN sent" />
-<Line value="4: Estab" />
-<Line value="5: Fin wait1" />
-<Line value="6: Fin wait2" />
-<Line value="7: closing" />
-<Line value="8: Time wait" />
-<Line value="9: close wait" />
-<Line value="10:last ack" />
+<Line value="Final" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="934" >
-<cdparam x="98" y="549" />
+<COMPONENT type="1011" id="863" >
+<cdparam x="678" y="965" />
 <sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="action state" value="tcpctrl.state =1" />
-<TGConnectingPoint num="0" id="932" />
-<TGConnectingPoint num="1" id="933" />
+<TGConnectingPoint num="0" id="861" />
+<TGConnectingPoint num="1" id="862" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="936" >
-<cdparam x="138" y="615" />
+<COMPONENT type="1001" id="865" >
+<cdparam x="718" y="1032" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="935" />
+<TGConnectingPoint num="0" id="864" />
 </COMPONENT>
 
-<COMPONENT type="1009" id="939" >
-<cdparam x="967" y="585" />
-<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="868" >
+<cdparam x="761" y="1086" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="read channel" value="fromPtoT(1) " />
-<TGConnectingPoint num="0" id="937" />
-<TGConnectingPoint num="1" id="938" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="866" />
+<TGConnectingPoint num="1" id="867" />
 <extraparam>
-<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1014" id="943" >
-<cdparam x="150" y="85" />
-<sizeparam width="170" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="885" >
+<cdparam x="781" y="950" />
+<sizeparam width="89" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="for loop" value="for(i=0;(tcpctrl.a==0);i = i)" />
-<TGConnectingPoint num="0" id="940" />
-<TGConnectingPoint num="1" id="941" />
-<TGConnectingPoint num="2" id="942" />
+<infoparam name="UML Note" value="Active Open
+" />
+<TGConnectingPoint num="0" id="869" />
+<TGConnectingPoint num="1" id="870" />
+<TGConnectingPoint num="2" id="871" />
+<TGConnectingPoint num="3" id="872" />
+<TGConnectingPoint num="4" id="873" />
+<TGConnectingPoint num="5" id="874" />
+<TGConnectingPoint num="6" id="875" />
+<TGConnectingPoint num="7" id="876" />
+<TGConnectingPoint num="8" id="877" />
+<TGConnectingPoint num="9" id="878" />
+<TGConnectingPoint num="10" id="879" />
+<TGConnectingPoint num="11" id="880" />
+<TGConnectingPoint num="12" id="881" />
+<TGConnectingPoint num="13" id="882" />
+<TGConnectingPoint num="14" id="883" />
+<TGConnectingPoint num="15" id="884" />
 <extraparam>
-<Data init="i=0" condition="(tcpctrl.a==0)" increment="i = i" />
+<Line value="Active Open" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="945" >
-<cdparam x="225" y="207" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="902" >
+<cdparam x="715" y="907" />
+<sizeparam width="97" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="944" />
+<infoparam name="UML Note" value="Passive Open
+" />
+<TGConnectingPoint num="0" id="886" />
+<TGConnectingPoint num="1" id="887" />
+<TGConnectingPoint num="2" id="888" />
+<TGConnectingPoint num="3" id="889" />
+<TGConnectingPoint num="4" id="890" />
+<TGConnectingPoint num="5" id="891" />
+<TGConnectingPoint num="6" id="892" />
+<TGConnectingPoint num="7" id="893" />
+<TGConnectingPoint num="8" id="894" />
+<TGConnectingPoint num="9" id="895" />
+<TGConnectingPoint num="10" id="896" />
+<TGConnectingPoint num="11" id="897" />
+<TGConnectingPoint num="12" id="898" />
+<TGConnectingPoint num="13" id="899" />
+<TGConnectingPoint num="14" id="900" />
+<TGConnectingPoint num="15" id="901" />
+<extraparam>
+<Line value="Passive Open" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="948" >
-<cdparam x="187" y="144" />
-<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="905" >
+<cdparam x="750" y="1193" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state=0" />
-<TGConnectingPoint num="0" id="946" />
-<TGConnectingPoint num="1" id="947" />
+<infoparam name="action state" value="tcpctrl.state =3" />
+<TGConnectingPoint num="0" id="903" />
+<TGConnectingPoint num="1" id="904" />
 </COMPONENT>
 
-<COMPONENT type="1017" id="951" >
-<cdparam x="316" y="133" />
-<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="908" >
+<cdparam x="446" y="768" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="notified event" value="tcpctrl.a=?abort()" />
-<TGConnectingPoint num="0" id="949" />
-<TGConnectingPoint num="1" id="950" />
-<extraparam>
-<Data eventName="abort" variable="tcpctrl.a" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="906" />
+<TGConnectingPoint num="1" id="907" />
 </COMPONENT>
 
-<COMPONENT type="1009" id="954" >
-<cdparam x="692" y="589" />
-<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="910" >
+<cdparam x="486" y="830" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="read channel" value="temp(1) " />
-<TGConnectingPoint num="0" id="952" />
-<TGConnectingPoint num="1" id="953" />
-<extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="909" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="957" >
-<cdparam x="689" y="534" />
-<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="913" >
+<cdparam x="904" y="1123" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="timeOut() " />
-<TGConnectingPoint num="0" id="955" />
-<TGConnectingPoint num="1" id="956" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="911" />
+<TGConnectingPoint num="1" id="912" />
 <extraparam>
-<Data eventName="timeOut" nbOfParams="5" />
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="960" >
-<cdparam x="977" y="528" />
-<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="930" >
+<cdparam x="884" y="1068" />
+<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="receive() " />
-<TGConnectingPoint num="0" id="958" />
-<TGConnectingPoint num="1" id="959" />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="914" />
+<TGConnectingPoint num="1" id="915" />
+<TGConnectingPoint num="2" id="916" />
+<TGConnectingPoint num="3" id="917" />
+<TGConnectingPoint num="4" id="918" />
+<TGConnectingPoint num="5" id="919" />
+<TGConnectingPoint num="6" id="920" />
+<TGConnectingPoint num="7" id="921" />
+<TGConnectingPoint num="8" id="922" />
+<TGConnectingPoint num="9" id="923" />
+<TGConnectingPoint num="10" id="924" />
+<TGConnectingPoint num="11" id="925" />
+<TGConnectingPoint num="12" id="926" />
+<TGConnectingPoint num="13" id="927" />
+<TGConnectingPoint num="14" id="928" />
+<TGConnectingPoint num="15" id="929" />
 <extraparam>
-<Data eventName="receive" nbOfParams="5" />
+<Line value="send Ack of Fin" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="963" >
-<cdparam x="439" y="492" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="933" >
+<cdparam x="893" y="1234" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="close() " />
-<TGConnectingPoint num="0" id="961" />
-<TGConnectingPoint num="1" id="962" />
-<extraparam>
-<Data eventName="close" nbOfParams="5" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =9" />
+<TGConnectingPoint num="0" id="931" />
+<TGConnectingPoint num="1" id="932" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="966" >
-<cdparam x="250" y="468" />
+<COMPONENT type="1001" id="935" >
+<cdparam x="933" y="1311" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="934" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="938" >
+<cdparam x="1010" y="1155" />
 <sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="send_TCP() " />
-<TGConnectingPoint num="0" id="964" />
-<TGConnectingPoint num="1" id="965" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="936" />
+<TGConnectingPoint num="1" id="937" />
 <extraparam>
-<Data eventName="send_TCP" nbOfParams="5" />
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="969" >
-<cdparam x="163" y="383" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="955" >
+<cdparam x="1000" y="1094" />
+<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="open() " />
-<TGConnectingPoint num="0" id="967" />
-<TGConnectingPoint num="1" id="968" />
-<breakpoint />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="939" />
+<TGConnectingPoint num="1" id="940" />
+<TGConnectingPoint num="2" id="941" />
+<TGConnectingPoint num="3" id="942" />
+<TGConnectingPoint num="4" id="943" />
+<TGConnectingPoint num="5" id="944" />
+<TGConnectingPoint num="6" id="945" />
+<TGConnectingPoint num="7" id="946" />
+<TGConnectingPoint num="8" id="947" />
+<TGConnectingPoint num="9" id="948" />
+<TGConnectingPoint num="10" id="949" />
+<TGConnectingPoint num="11" id="950" />
+<TGConnectingPoint num="12" id="951" />
+<TGConnectingPoint num="13" id="952" />
+<TGConnectingPoint num="14" id="953" />
+<TGConnectingPoint num="15" id="954" />
 <extraparam>
-<Data eventName="open" nbOfParams="5" />
+<Line value="send Ack of Fin" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1018" id="980" >
-<cdparam x="449" y="267" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="958" >
+<cdparam x="999" y="1266" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="select" value="null" />
-<TGConnectingPoint num="0" id="970" />
-<TGConnectingPoint num="1" id="971" />
-<TGConnectingPoint num="2" id="972" />
-<TGConnectingPoint num="3" id="973" />
-<TGConnectingPoint num="4" id="974" />
-<TGConnectingPoint num="5" id="975" />
-<TGConnectingPoint num="6" id="976" />
-<TGConnectingPoint num="7" id="977" />
-<TGConnectingPoint num="8" id="978" />
-<TGConnectingPoint num="9" id="979" />
-<breakpoint />
+<infoparam name="action state" value="tcpctrl.state =7" />
+<TGConnectingPoint num="0" id="956" />
+<TGConnectingPoint num="1" id="957" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="982" >
-<cdparam x="218" y="529" />
+<COMPONENT type="1001" id="960" >
+<cdparam x="1039" y="1341" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="981" />
+<TGConnectingPoint num="0" id="959" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="984" >
-<cdparam x="319" y="614" />
+<COMPONENT type="1006" id="963" >
+<cdparam x="683" y="758" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="961" />
+<TGConnectingPoint num="1" id="962" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="965" >
+<cdparam x="712" y="865" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="983" />
+<TGConnectingPoint num="0" id="964" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="987" >
-<cdparam x="275" y="228" />
-<sizeparam width="53" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="968" >
+<cdparam x="93" y="1100" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="abort() " />
-<TGConnectingPoint num="0" id="985" />
-<TGConnectingPoint num="1" id="986" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="966" />
+<TGConnectingPoint num="1" id="967" />
 <extraparam>
-<Data eventName="abort" nbOfParams="5" />
+<Data requestName="req_Timer" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="989" >
-<cdparam x="291" y="290" />
+<COMPONENT type="1006" id="971" >
+<cdparam x="104" y="1167" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="969" />
+<TGConnectingPoint num="1" id="970" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="973" >
+<cdparam x="122" y="1236" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="988" />
+<TGConnectingPoint num="0" id="972" />
 </COMPONENT>
 
-<COMPONENT type="301" id="1006" >
-<cdparam x="602" y="86" />
-<sizeparam width="360" height="51" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="976" >
+<cdparam x="191" y="1102" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="b est le nombre d&apos;instructions necessaires pour paquetiser
-ou depaquitiser un paquet TCP
-
-On prend b=1 comme exemple
-" />
-<TGConnectingPoint num="0" id="990" />
-<TGConnectingPoint num="1" id="991" />
-<TGConnectingPoint num="2" id="992" />
-<TGConnectingPoint num="3" id="993" />
-<TGConnectingPoint num="4" id="994" />
-<TGConnectingPoint num="5" id="995" />
-<TGConnectingPoint num="6" id="996" />
-<TGConnectingPoint num="7" id="997" />
-<TGConnectingPoint num="8" id="998" />
-<TGConnectingPoint num="9" id="999" />
-<TGConnectingPoint num="10" id="1000" />
-<TGConnectingPoint num="11" id="1001" />
-<TGConnectingPoint num="12" id="1002" />
-<TGConnectingPoint num="13" id="1003" />
-<TGConnectingPoint num="14" id="1004" />
-<TGConnectingPoint num="15" id="1005" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="974" />
+<TGConnectingPoint num="1" id="975" />
 <extraparam>
-<Line value="b est le nombre d&apos;instructions necessaires pour paquetiser" />
-<Line value="ou depaquitiser un paquet TCP" />
-<Line value="" />
-<Line value="On prend b=1 comme exemple" />
+<Data requestName="req_Timer" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="1009" >
-<cdparam x="188" y="808" />
-<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="979" >
+<cdparam x="202" y="1169" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="read channel" value="fromAtoT(1) " />
-<TGConnectingPoint num="0" id="1007" />
-<TGConnectingPoint num="1" id="1008" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="977" />
+<TGConnectingPoint num="1" id="978" />
 <extraparam>
-<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="1012" >
-<cdparam x="191" y="1002" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="982" >
+<cdparam x="307" y="1106" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1010" />
-<TGConnectingPoint num="1" id="1011" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="980" />
+<TGConnectingPoint num="1" id="981" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data requestName="req_Timer" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="1014" >
-<cdparam x="220" y="1237" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="985" >
+<cdparam x="318" y="1173" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1013" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="983" />
+<TGConnectingPoint num="1" id="984" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1017" >
-<cdparam x="414" y="1032" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="988" >
+<cdparam x="425" y="1090" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =5" />
-<TGConnectingPoint num="0" id="1015" />
-<TGConnectingPoint num="1" id="1016" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="986" />
+<TGConnectingPoint num="1" id="987" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="1019" >
-<cdparam x="454" y="1213" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="991" >
+<cdparam x="436" y="1159" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1018" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="989" />
+<TGConnectingPoint num="1" id="990" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1022" >
-<cdparam x="84" y="1041" />
-<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="994" >
+<cdparam x="56" y="861" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state=3" />
-<TGConnectingPoint num="0" id="1020" />
-<TGConnectingPoint num="1" id="1021" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="992" />
+<TGConnectingPoint num="1" id="993" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1025" >
-<cdparam x="93" y="938" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="997" >
+<cdparam x="154" y="940" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1023" />
-<TGConnectingPoint num="1" id="1024" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="995" />
+<TGConnectingPoint num="1" id="996" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="1028" >
-<cdparam x="292" y="1026" />
-<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1000" >
+<cdparam x="388" y="865" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =10" />
-<TGConnectingPoint num="0" id="1026" />
-<TGConnectingPoint num="1" id="1027" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="998" />
+<TGConnectingPoint num="1" id="999" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="1030" >
-<cdparam x="336" y="1229" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1003" >
+<cdparam x="270" y="831" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1029" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="1001" />
+<TGConnectingPoint num="1" id="1002" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1033" >
-<cdparam x="425" y="941" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1006" >
+<cdparam x="207" y="1052" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1031" />
-<TGConnectingPoint num="1" id="1032" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1004" />
+<TGConnectingPoint num="1" id="1005" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="1036" >
-<cdparam x="307" y="900" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1009" >
+<cdparam x="323" y="962" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1034" />
-<TGConnectingPoint num="1" id="1035" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1007" />
+<TGConnectingPoint num="1" id="1008" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="1038" >
-<cdparam x="790" y="1270" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1012" >
+<cdparam x="441" y="983" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1037" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1010" />
+<TGConnectingPoint num="1" id="1011" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="1055" >
-<cdparam x="998" y="850" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1015" >
+<cdparam x="109" y="986" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Final
-" />
-<TGConnectingPoint num="0" id="1039" />
-<TGConnectingPoint num="1" id="1040" />
-<TGConnectingPoint num="2" id="1041" />
-<TGConnectingPoint num="3" id="1042" />
-<TGConnectingPoint num="4" id="1043" />
-<TGConnectingPoint num="5" id="1044" />
-<TGConnectingPoint num="6" id="1045" />
-<TGConnectingPoint num="7" id="1046" />
-<TGConnectingPoint num="8" id="1047" />
-<TGConnectingPoint num="9" id="1048" />
-<TGConnectingPoint num="10" id="1049" />
-<TGConnectingPoint num="11" id="1050" />
-<TGConnectingPoint num="12" id="1051" />
-<TGConnectingPoint num="13" id="1052" />
-<TGConnectingPoint num="14" id="1053" />
-<TGConnectingPoint num="15" id="1054" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1013" />
+<TGConnectingPoint num="1" id="1014" />
 <extraparam>
-<Line value="Final" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1058" >
-<cdparam x="678" y="965" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =1" />
-<TGConnectingPoint num="0" id="1056" />
-<TGConnectingPoint num="1" id="1057" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1060" >
-<cdparam x="718" y="1032" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1059" />
-</COMPONENT>
-
-<COMPONENT type="1006" id="1063" >
-<cdparam x="761" y="1086" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1018" >
+<cdparam x="699" y="813" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1061" />
-<TGConnectingPoint num="1" id="1062" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1016" />
+<TGConnectingPoint num="1" id="1017" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="1080" >
-<cdparam x="781" y="950" />
-<sizeparam width="89" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1021" >
+<cdparam x="777" y="1141" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Active Open
-" />
-<TGConnectingPoint num="0" id="1064" />
-<TGConnectingPoint num="1" id="1065" />
-<TGConnectingPoint num="2" id="1066" />
-<TGConnectingPoint num="3" id="1067" />
-<TGConnectingPoint num="4" id="1068" />
-<TGConnectingPoint num="5" id="1069" />
-<TGConnectingPoint num="6" id="1070" />
-<TGConnectingPoint num="7" id="1071" />
-<TGConnectingPoint num="8" id="1072" />
-<TGConnectingPoint num="9" id="1073" />
-<TGConnectingPoint num="10" id="1074" />
-<TGConnectingPoint num="11" id="1075" />
-<TGConnectingPoint num="12" id="1076" />
-<TGConnectingPoint num="13" id="1077" />
-<TGConnectingPoint num="14" id="1078" />
-<TGConnectingPoint num="15" id="1079" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1019" />
+<TGConnectingPoint num="1" id="1020" />
 <extraparam>
-<Line value="Active Open" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="1097" >
-<cdparam x="715" y="907" />
-<sizeparam width="97" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1024" >
+<cdparam x="920" y="1178" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Passive Open
-" />
-<TGConnectingPoint num="0" id="1081" />
-<TGConnectingPoint num="1" id="1082" />
-<TGConnectingPoint num="2" id="1083" />
-<TGConnectingPoint num="3" id="1084" />
-<TGConnectingPoint num="4" id="1085" />
-<TGConnectingPoint num="5" id="1086" />
-<TGConnectingPoint num="6" id="1087" />
-<TGConnectingPoint num="7" id="1088" />
-<TGConnectingPoint num="8" id="1089" />
-<TGConnectingPoint num="9" id="1090" />
-<TGConnectingPoint num="10" id="1091" />
-<TGConnectingPoint num="11" id="1092" />
-<TGConnectingPoint num="12" id="1093" />
-<TGConnectingPoint num="13" id="1094" />
-<TGConnectingPoint num="14" id="1095" />
-<TGConnectingPoint num="15" id="1096" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1022" />
+<TGConnectingPoint num="1" id="1023" />
 <extraparam>
-<Line value="Passive Open" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1100" >
-<cdparam x="750" y="1193" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1027" >
+<cdparam x="1026" y="1211" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =3" />
-<TGConnectingPoint num="0" id="1098" />
-<TGConnectingPoint num="1" id="1099" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1025" />
+<TGConnectingPoint num="1" id="1026" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1103" >
-<cdparam x="446" y="768" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1029" >
+<cdparam x="602" y="762" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="1101" />
-<TGConnectingPoint num="1" id="1102" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1028" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="1105" >
-<cdparam x="486" y="830" />
+<COMPONENT type="1001" id="1031" >
+<cdparam x="873" y="922" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1104" />
+<TGConnectingPoint num="0" id="1030" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1108" >
-<cdparam x="904" y="1123" />
+<COMPONENT type="1006" id="1034" >
+<cdparam x="1169" y="1214" />
 <sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1106" />
-<TGConnectingPoint num="1" id="1107" />
+<TGConnectingPoint num="0" id="1032" />
+<TGConnectingPoint num="1" id="1033" />
 <extraparam>
 <Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="1125" >
-<cdparam x="884" y="1068" />
+<COMPONENT type="301" id="1051" >
+<cdparam x="1159" y="1153" />
 <sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="UML Note" value="send Ack of Fin
 " />
-<TGConnectingPoint num="0" id="1109" />
-<TGConnectingPoint num="1" id="1110" />
-<TGConnectingPoint num="2" id="1111" />
-<TGConnectingPoint num="3" id="1112" />
-<TGConnectingPoint num="4" id="1113" />
-<TGConnectingPoint num="5" id="1114" />
-<TGConnectingPoint num="6" id="1115" />
-<TGConnectingPoint num="7" id="1116" />
-<TGConnectingPoint num="8" id="1117" />
-<TGConnectingPoint num="9" id="1118" />
-<TGConnectingPoint num="10" id="1119" />
-<TGConnectingPoint num="11" id="1120" />
-<TGConnectingPoint num="12" id="1121" />
-<TGConnectingPoint num="13" id="1122" />
-<TGConnectingPoint num="14" id="1123" />
-<TGConnectingPoint num="15" id="1124" />
+<TGConnectingPoint num="0" id="1035" />
+<TGConnectingPoint num="1" id="1036" />
+<TGConnectingPoint num="2" id="1037" />
+<TGConnectingPoint num="3" id="1038" />
+<TGConnectingPoint num="4" id="1039" />
+<TGConnectingPoint num="5" id="1040" />
+<TGConnectingPoint num="6" id="1041" />
+<TGConnectingPoint num="7" id="1042" />
+<TGConnectingPoint num="8" id="1043" />
+<TGConnectingPoint num="9" id="1044" />
+<TGConnectingPoint num="10" id="1045" />
+<TGConnectingPoint num="11" id="1046" />
+<TGConnectingPoint num="12" id="1047" />
+<TGConnectingPoint num="13" id="1048" />
+<TGConnectingPoint num="14" id="1049" />
+<TGConnectingPoint num="15" id="1050" />
 <extraparam>
 <Line value="send Ack of Fin" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1128" >
-<cdparam x="893" y="1234" />
+<COMPONENT type="1011" id="1054" >
+<cdparam x="1158" y="1295" />
 <sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =9" />
-<TGConnectingPoint num="0" id="1126" />
-<TGConnectingPoint num="1" id="1127" />
+<infoparam name="action state" value="tcpctrl.state =8" />
+<TGConnectingPoint num="0" id="1052" />
+<TGConnectingPoint num="1" id="1053" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="1130" >
-<cdparam x="933" y="1311" />
+<COMPONENT type="1001" id="1056" >
+<cdparam x="1198" y="1471" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1129" />
+<TGConnectingPoint num="0" id="1055" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1133" >
-<cdparam x="1010" y="1155" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1059" >
+<cdparam x="1158" y="1402" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1131" />
-<TGConnectingPoint num="1" id="1132" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="1057" />
+<TGConnectingPoint num="1" id="1058" />
 </COMPONENT>
 
-<COMPONENT type="301" id="1150" >
-<cdparam x="1000" y="1094" />
-<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1062" >
+<cdparam x="1185" y="1351" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="send Ack of Fin
-" />
-<TGConnectingPoint num="0" id="1134" />
-<TGConnectingPoint num="1" id="1135" />
-<TGConnectingPoint num="2" id="1136" />
-<TGConnectingPoint num="3" id="1137" />
-<TGConnectingPoint num="4" id="1138" />
-<TGConnectingPoint num="5" id="1139" />
-<TGConnectingPoint num="6" id="1140" />
-<TGConnectingPoint num="7" id="1141" />
-<TGConnectingPoint num="8" id="1142" />
-<TGConnectingPoint num="9" id="1143" />
-<TGConnectingPoint num="10" id="1144" />
-<TGConnectingPoint num="11" id="1145" />
-<TGConnectingPoint num="12" id="1146" />
-<TGConnectingPoint num="13" id="1147" />
-<TGConnectingPoint num="14" id="1148" />
-<TGConnectingPoint num="15" id="1149" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1060" />
+<TGConnectingPoint num="1" id="1061" />
 <extraparam>
-<Line value="send Ack of Fin" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1153" >
-<cdparam x="999" y="1266" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1064" >
+<cdparam x="1277" y="1070" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =7" />
-<TGConnectingPoint num="0" id="1151" />
-<TGConnectingPoint num="1" id="1152" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1063" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="1155" >
-<cdparam x="1039" y="1341" />
+<COMPONENT type="1001" id="1066" >
+<cdparam x="1519" y="1457" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1154" />
+<TGConnectingPoint num="0" id="1065" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1158" >
-<cdparam x="683" y="758" />
+<COMPONENT type="1006" id="1069" >
+<cdparam x="1489" y="1132" />
+<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoA(1)" />
+<TGConnectingPoint num="0" id="1067" />
+<TGConnectingPoint num="1" id="1068" />
+<extraparam>
+<Data channelName="fromTtoA" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="1072" >
+<cdparam x="1490" y="1348" />
 <sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1156" />
-<TGConnectingPoint num="1" id="1157" />
+<TGConnectingPoint num="0" id="1070" />
+<TGConnectingPoint num="1" id="1071" />
 <extraparam>
 <Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="1160" >
-<cdparam x="712" y="865" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1075" >
+<cdparam x="1707" y="1026" />
+<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1159" />
+<infoparam name="send event" value="stop()" />
+<TGConnectingPoint num="0" id="1073" />
+<TGConnectingPoint num="1" id="1074" />
+<extraparam>
+<Data eventName="stop" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="1163" >
-<cdparam x="93" y="1100" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="1092" >
+<cdparam x="1759" y="1192" />
+<sizeparam width="86" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="1161" />
-<TGConnectingPoint num="1" id="1162" />
+<infoparam name="UML Note" value="Correct ack
+" />
+<TGConnectingPoint num="0" id="1076" />
+<TGConnectingPoint num="1" id="1077" />
+<TGConnectingPoint num="2" id="1078" />
+<TGConnectingPoint num="3" id="1079" />
+<TGConnectingPoint num="4" id="1080" />
+<TGConnectingPoint num="5" id="1081" />
+<TGConnectingPoint num="6" id="1082" />
+<TGConnectingPoint num="7" id="1083" />
+<TGConnectingPoint num="8" id="1084" />
+<TGConnectingPoint num="9" id="1085" />
+<TGConnectingPoint num="10" id="1086" />
+<TGConnectingPoint num="11" id="1087" />
+<TGConnectingPoint num="12" id="1088" />
+<TGConnectingPoint num="13" id="1089" />
+<TGConnectingPoint num="14" id="1090" />
+<TGConnectingPoint num="15" id="1091" />
 <extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
+<Line value="Correct ack" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="1166" >
-<cdparam x="104" y="1167" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="1109" >
+<cdparam x="1635" y="1168" />
+<sizeparam width="71" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="1164" />
-<TGConnectingPoint num="1" id="1165" />
+<infoparam name="UML Note" value="false ack
+" />
+<TGConnectingPoint num="0" id="1093" />
+<TGConnectingPoint num="1" id="1094" />
+<TGConnectingPoint num="2" id="1095" />
+<TGConnectingPoint num="3" id="1096" />
+<TGConnectingPoint num="4" id="1097" />
+<TGConnectingPoint num="5" id="1098" />
+<TGConnectingPoint num="6" id="1099" />
+<TGConnectingPoint num="7" id="1100" />
+<TGConnectingPoint num="8" id="1101" />
+<TGConnectingPoint num="9" id="1102" />
+<TGConnectingPoint num="10" id="1103" />
+<TGConnectingPoint num="11" id="1104" />
+<TGConnectingPoint num="12" id="1105" />
+<TGConnectingPoint num="13" id="1106" />
+<TGConnectingPoint num="14" id="1107" />
+<TGConnectingPoint num="15" id="1108" />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Line value="false ack" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="1168" >
-<cdparam x="122" y="1236" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="1112" >
+<cdparam x="1602" y="1299" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1167" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="1110" />
+<TGConnectingPoint num="1" id="1111" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="1171" >
-<cdparam x="191" y="1102" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1114" >
+<cdparam x="1631" y="1468" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="1169" />
-<TGConnectingPoint num="1" id="1170" />
-<extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1113" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1174" >
-<cdparam x="202" y="1169" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="1131" >
+<cdparam x="1469" y="1295" />
+<sizeparam width="127" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="1172" />
-<TGConnectingPoint num="1" id="1173" />
+<infoparam name="UML Note" value="return acknowldge
+" />
+<TGConnectingPoint num="0" id="1115" />
+<TGConnectingPoint num="1" id="1116" />
+<TGConnectingPoint num="2" id="1117" />
+<TGConnectingPoint num="3" id="1118" />
+<TGConnectingPoint num="4" id="1119" />
+<TGConnectingPoint num="5" id="1120" />
+<TGConnectingPoint num="6" id="1121" />
+<TGConnectingPoint num="7" id="1122" />
+<TGConnectingPoint num="8" id="1123" />
+<TGConnectingPoint num="9" id="1124" />
+<TGConnectingPoint num="10" id="1125" />
+<TGConnectingPoint num="11" id="1126" />
+<TGConnectingPoint num="12" id="1127" />
+<TGConnectingPoint num="13" id="1128" />
+<TGConnectingPoint num="14" id="1129" />
+<TGConnectingPoint num="15" id="1130" />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Line value="return acknowldge" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="1177" >
-<cdparam x="307" y="1106" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="1148" >
+<cdparam x="1620" y="927" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="1175" />
-<TGConnectingPoint num="1" id="1176" />
+<infoparam name="UML Note" value="data
+" />
+<TGConnectingPoint num="0" id="1132" />
+<TGConnectingPoint num="1" id="1133" />
+<TGConnectingPoint num="2" id="1134" />
+<TGConnectingPoint num="3" id="1135" />
+<TGConnectingPoint num="4" id="1136" />
+<TGConnectingPoint num="5" id="1137" />
+<TGConnectingPoint num="6" id="1138" />
+<TGConnectingPoint num="7" id="1139" />
+<TGConnectingPoint num="8" id="1140" />
+<TGConnectingPoint num="9" id="1141" />
+<TGConnectingPoint num="10" id="1142" />
+<TGConnectingPoint num="11" id="1143" />
+<TGConnectingPoint num="12" id="1144" />
+<TGConnectingPoint num="13" id="1145" />
+<TGConnectingPoint num="14" id="1146" />
+<TGConnectingPoint num="15" id="1147" />
 <extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
+<Line value="data" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="1180" >
-<cdparam x="318" y="1173" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1151" >
+<cdparam x="1506" y="1405" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="1178" />
-<TGConnectingPoint num="1" id="1179" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1149" />
+<TGConnectingPoint num="1" id="1150" />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="1183" >
-<cdparam x="425" y="1090" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1154" >
+<cdparam x="1618" y="1348" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="1181" />
-<TGConnectingPoint num="1" id="1182" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1152" />
+<TGConnectingPoint num="1" id="1153" />
 <extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="1186" >
-<cdparam x="436" y="1159" />
+<COMPONENT type="1006" id="1157" >
+<cdparam x="1613" y="1404" />
 <sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="1184" />
-<TGConnectingPoint num="1" id="1185" />
+<TGConnectingPoint num="0" id="1155" />
+<TGConnectingPoint num="1" id="1156" />
 <extraparam>
 <Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1189" >
-<cdparam x="56" y="861" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1159" >
+<cdparam x="1730" y="1335" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="1187" />
-<TGConnectingPoint num="1" id="1188" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1158" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="1192" >
-<cdparam x="154" y="940" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1162" >
+<cdparam x="1776" y="1349" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="1190" />
-<TGConnectingPoint num="1" id="1191" />
+<infoparam name="action state" value="tcpctrl.state =4" />
+<TGConnectingPoint num="0" id="1160" />
+<TGConnectingPoint num="1" id="1161" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="1195" >
-<cdparam x="388" y="865" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1164" >
+<cdparam x="1816" y="1457" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="1193" />
-<TGConnectingPoint num="1" id="1194" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1163" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="1198" >
-<cdparam x="270" y="831" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1167" >
+<cdparam x="1870" y="1411" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="1196" />
-<TGConnectingPoint num="1" id="1197" />
+<infoparam name="action state" value="tcpctrl.state =6" />
+<TGConnectingPoint num="0" id="1165" />
+<TGConnectingPoint num="1" id="1166" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1201" >
-<cdparam x="207" y="1052" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1169" >
+<cdparam x="1910" y="1481" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1199" />
-<TGConnectingPoint num="1" id="1200" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1168" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1204" >
-<cdparam x="323" y="962" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1171" >
+<cdparam x="1986" y="1543" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1202" />
-<TGConnectingPoint num="1" id="1203" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1170" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1207" >
-<cdparam x="441" y="983" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1174" >
+<cdparam x="2051" y="1466" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1205" />
-<TGConnectingPoint num="1" id="1206" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="1172" />
+<TGConnectingPoint num="1" id="1173" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1210" >
-<cdparam x="109" y="986" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1176" >
+<cdparam x="2091" y="1537" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1208" />
-<TGConnectingPoint num="1" id="1209" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1175" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1213" >
-<cdparam x="699" y="813" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1179" >
+<cdparam x="1946" y="1493" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1211" />
-<TGConnectingPoint num="1" id="1212" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="1177" />
+<TGConnectingPoint num="1" id="1178" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1216" >
-<cdparam x="777" y="1141" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1182" >
+<cdparam x="1946" y="1434" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1214" />
-<TGConnectingPoint num="1" id="1215" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =8" />
+<TGConnectingPoint num="0" id="1180" />
+<TGConnectingPoint num="1" id="1181" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1219" >
-<cdparam x="920" y="1178" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="1199" >
+<cdparam x="1825" y="889" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1217" />
-<TGConnectingPoint num="1" id="1218" />
+<infoparam name="UML Note" value="Syn
+" />
+<TGConnectingPoint num="0" id="1183" />
+<TGConnectingPoint num="1" id="1184" />
+<TGConnectingPoint num="2" id="1185" />
+<TGConnectingPoint num="3" id="1186" />
+<TGConnectingPoint num="4" id="1187" />
+<TGConnectingPoint num="5" id="1188" />
+<TGConnectingPoint num="6" id="1189" />
+<TGConnectingPoint num="7" id="1190" />
+<TGConnectingPoint num="8" id="1191" />
+<TGConnectingPoint num="9" id="1192" />
+<TGConnectingPoint num="10" id="1193" />
+<TGConnectingPoint num="11" id="1194" />
+<TGConnectingPoint num="12" id="1195" />
+<TGConnectingPoint num="13" id="1196" />
+<TGConnectingPoint num="14" id="1197" />
+<TGConnectingPoint num="15" id="1198" />
 <extraparam>
-<Data eventName="send" nbOfParams="5" />
+<Line value="Syn" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="1222" >
-<cdparam x="1026" y="1211" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="1216" >
+<cdparam x="1707" y="945" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1220" />
-<TGConnectingPoint num="1" id="1221" />
+<infoparam name="UML Note" value="ack
+" />
+<TGConnectingPoint num="0" id="1200" />
+<TGConnectingPoint num="1" id="1201" />
+<TGConnectingPoint num="2" id="1202" />
+<TGConnectingPoint num="3" id="1203" />
+<TGConnectingPoint num="4" id="1204" />
+<TGConnectingPoint num="5" id="1205" />
+<TGConnectingPoint num="6" id="1206" />
+<TGConnectingPoint num="7" id="1207" />
+<TGConnectingPoint num="8" id="1208" />
+<TGConnectingPoint num="9" id="1209" />
+<TGConnectingPoint num="10" id="1210" />
+<TGConnectingPoint num="11" id="1211" />
+<TGConnectingPoint num="12" id="1212" />
+<TGConnectingPoint num="13" id="1213" />
+<TGConnectingPoint num="14" id="1214" />
+<TGConnectingPoint num="15" id="1215" />
 <extraparam>
-<Data eventName="send" nbOfParams="5" />
+<Line value="ack" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="1224" >
-<cdparam x="602" y="762" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1223" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1226" >
-<cdparam x="873" y="922" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1225" />
-</COMPONENT>
-
-<COMPONENT type="1006" id="1229" >
-<cdparam x="1169" y="1214" />
+<COMPONENT type="1006" id="1219" >
+<cdparam x="2198" y="1198" />
 <sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1227" />
-<TGConnectingPoint num="1" id="1228" />
+<TGConnectingPoint num="0" id="1217" />
+<TGConnectingPoint num="1" id="1218" />
 <extraparam>
 <Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="1246" >
-<cdparam x="1159" y="1153" />
-<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="send Ack of Fin
-" />
-<TGConnectingPoint num="0" id="1230" />
-<TGConnectingPoint num="1" id="1231" />
-<TGConnectingPoint num="2" id="1232" />
-<TGConnectingPoint num="3" id="1233" />
-<TGConnectingPoint num="4" id="1234" />
-<TGConnectingPoint num="5" id="1235" />
-<TGConnectingPoint num="6" id="1236" />
-<TGConnectingPoint num="7" id="1237" />
-<TGConnectingPoint num="8" id="1238" />
-<TGConnectingPoint num="9" id="1239" />
-<TGConnectingPoint num="10" id="1240" />
-<TGConnectingPoint num="11" id="1241" />
-<TGConnectingPoint num="12" id="1242" />
-<TGConnectingPoint num="13" id="1243" />
-<TGConnectingPoint num="14" id="1244" />
-<TGConnectingPoint num="15" id="1245" />
-<extraparam>
-<Line value="send Ack of Fin" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1011" id="1249" >
-<cdparam x="1158" y="1295" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =8" />
-<TGConnectingPoint num="0" id="1247" />
-<TGConnectingPoint num="1" id="1248" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1251" >
-<cdparam x="1198" y="1471" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1250" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="1254" >
-<cdparam x="1158" y="1402" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="1252" />
-<TGConnectingPoint num="1" id="1253" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="1257" >
-<cdparam x="1185" y="1351" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1255" />
-<TGConnectingPoint num="1" id="1256" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="1259" >
-<cdparam x="1277" y="1070" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1258" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1261" >
-<cdparam x="1519" y="1457" />
+<COMPONENT type="1001" id="1221" >
+<cdparam x="2227" y="1483" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1260" />
+<TGConnectingPoint num="0" id="1220" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1264" >
-<cdparam x="1489" y="1132" />
-<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="1224" >
+<cdparam x="2198" y="1298" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoA(1)" />
-<TGConnectingPoint num="0" id="1262" />
-<TGConnectingPoint num="1" id="1263" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="1222" />
+<TGConnectingPoint num="1" id="1223" />
 <extraparam>
-<Data channelName="fromTtoA" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data requestName="req_Timer" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="1267" >
-<cdparam x="1490" y="1348" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="1227" >
+<cdparam x="2209" y="1365" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1265" />
-<TGConnectingPoint num="1" id="1266" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="1225" />
+<TGConnectingPoint num="1" id="1226" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="1270" >
-<cdparam x="1707" y="1026" />
-<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1230" >
+<cdparam x="2161" y="1136" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="stop()" />
-<TGConnectingPoint num="0" id="1268" />
-<TGConnectingPoint num="1" id="1269" />
-<extraparam>
-<Data eventName="stop" nbOfParams="5" />
-</extraparam>
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="1228" />
+<TGConnectingPoint num="1" id="1229" />
 </COMPONENT>
 
-<COMPONENT type="301" id="1287" >
-<cdparam x="1759" y="1192" />
-<sizeparam width="86" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1233" >
+<cdparam x="2214" y="1248" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Correct ack
-" />
-<TGConnectingPoint num="0" id="1271" />
-<TGConnectingPoint num="1" id="1272" />
-<TGConnectingPoint num="2" id="1273" />
-<TGConnectingPoint num="3" id="1274" />
-<TGConnectingPoint num="4" id="1275" />
-<TGConnectingPoint num="5" id="1276" />
-<TGConnectingPoint num="6" id="1277" />
-<TGConnectingPoint num="7" id="1278" />
-<TGConnectingPoint num="8" id="1279" />
-<TGConnectingPoint num="9" id="1280" />
-<TGConnectingPoint num="10" id="1281" />
-<TGConnectingPoint num="11" id="1282" />
-<TGConnectingPoint num="12" id="1283" />
-<TGConnectingPoint num="13" id="1284" />
-<TGConnectingPoint num="14" id="1285" />
-<TGConnectingPoint num="15" id="1286" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="1231" />
+<TGConnectingPoint num="1" id="1232" />
 <extraparam>
-<Line value="Correct ack" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="1304" >
-<cdparam x="1635" y="1168" />
-<sizeparam width="71" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1236" >
+<cdparam x="2187" y="1424" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="false ack
-" />
-<TGConnectingPoint num="0" id="1288" />
-<TGConnectingPoint num="1" id="1289" />
-<TGConnectingPoint num="2" id="1290" />
-<TGConnectingPoint num="3" id="1291" />
-<TGConnectingPoint num="4" id="1292" />
-<TGConnectingPoint num="5" id="1293" />
-<TGConnectingPoint num="6" id="1294" />
-<TGConnectingPoint num="7" id="1295" />
-<TGConnectingPoint num="8" id="1296" />
-<TGConnectingPoint num="9" id="1297" />
-<TGConnectingPoint num="10" id="1298" />
-<TGConnectingPoint num="11" id="1299" />
-<TGConnectingPoint num="12" id="1300" />
-<TGConnectingPoint num="13" id="1301" />
-<TGConnectingPoint num="14" id="1302" />
-<TGConnectingPoint num="15" id="1303" />
-<extraparam>
-<Line value="false ack" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =2" />
+<TGConnectingPoint num="0" id="1234" />
+<TGConnectingPoint num="1" id="1235" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="1307" >
-<cdparam x="1602" y="1299" />
+<COMPONENT type="1006" id="1239" >
+<cdparam x="2278" y="1122" />
 <sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1305" />
-<TGConnectingPoint num="1" id="1306" />
+<TGConnectingPoint num="0" id="1237" />
+<TGConnectingPoint num="1" id="1238" />
 <extraparam>
 <Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="1309" >
-<cdparam x="1631" y="1468" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1308" />
-</COMPONENT>
-
-<COMPONENT type="301" id="1326" >
-<cdparam x="1469" y="1295" />
-<sizeparam width="127" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="1256" >
+<cdparam x="2283" y="1065" />
+<sizeparam width="114" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="return acknowldge
+<infoparam name="UML Note" value="send Ack of SYN
 " />
-<TGConnectingPoint num="0" id="1310" />
-<TGConnectingPoint num="1" id="1311" />
-<TGConnectingPoint num="2" id="1312" />
-<TGConnectingPoint num="3" id="1313" />
-<TGConnectingPoint num="4" id="1314" />
-<TGConnectingPoint num="5" id="1315" />
-<TGConnectingPoint num="6" id="1316" />
-<TGConnectingPoint num="7" id="1317" />
-<TGConnectingPoint num="8" id="1318" />
-<TGConnectingPoint num="9" id="1319" />
-<TGConnectingPoint num="10" id="1320" />
-<TGConnectingPoint num="11" id="1321" />
-<TGConnectingPoint num="12" id="1322" />
-<TGConnectingPoint num="13" id="1323" />
-<TGConnectingPoint num="14" id="1324" />
-<TGConnectingPoint num="15" id="1325" />
+<TGConnectingPoint num="0" id="1240" />
+<TGConnectingPoint num="1" id="1241" />
+<TGConnectingPoint num="2" id="1242" />
+<TGConnectingPoint num="3" id="1243" />
+<TGConnectingPoint num="4" id="1244" />
+<TGConnectingPoint num="5" id="1245" />
+<TGConnectingPoint num="6" id="1246" />
+<TGConnectingPoint num="7" id="1247" />
+<TGConnectingPoint num="8" id="1248" />
+<TGConnectingPoint num="9" id="1249" />
+<TGConnectingPoint num="10" id="1250" />
+<TGConnectingPoint num="11" id="1251" />
+<TGConnectingPoint num="12" id="1252" />
+<TGConnectingPoint num="13" id="1253" />
+<TGConnectingPoint num="14" id="1254" />
+<TGConnectingPoint num="15" id="1255" />
 <extraparam>
-<Line value="return acknowldge" />
+<Line value="send Ack of SYN" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="1343" >
-<cdparam x="1620" y="927" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1011" id="1259" >
+<cdparam x="2267" y="1267" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="data
-" />
-<TGConnectingPoint num="0" id="1327" />
-<TGConnectingPoint num="1" id="1328" />
-<TGConnectingPoint num="2" id="1329" />
-<TGConnectingPoint num="3" id="1330" />
-<TGConnectingPoint num="4" id="1331" />
-<TGConnectingPoint num="5" id="1332" />
-<TGConnectingPoint num="6" id="1333" />
-<TGConnectingPoint num="7" id="1334" />
-<TGConnectingPoint num="8" id="1335" />
-<TGConnectingPoint num="9" id="1336" />
-<TGConnectingPoint num="10" id="1337" />
-<TGConnectingPoint num="11" id="1338" />
-<TGConnectingPoint num="12" id="1339" />
-<TGConnectingPoint num="13" id="1340" />
-<TGConnectingPoint num="14" id="1341" />
-<TGConnectingPoint num="15" id="1342" />
-<extraparam>
-<Line value="data" />
-</extraparam>
+<infoparam name="action state" value="tcpctrl.state =2" />
+<TGConnectingPoint num="0" id="1257" />
+<TGConnectingPoint num="1" id="1258" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1346" >
-<cdparam x="1506" y="1405" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1261" >
+<cdparam x="2307" y="1324" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1344" />
-<TGConnectingPoint num="1" id="1345" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1260" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="1349" >
-<cdparam x="1618" y="1348" />
+<COMPONENT type="1008" id="1264" >
+<cdparam x="2294" y="1199" />
 <sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1347" />
-<TGConnectingPoint num="1" id="1348" />
+<TGConnectingPoint num="0" id="1262" />
+<TGConnectingPoint num="1" id="1263" />
 <extraparam>
 <Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="1352" >
-<cdparam x="1613" y="1404" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="1350" />
-<TGConnectingPoint num="1" id="1351" />
-<extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="1354" >
-<cdparam x="1730" y="1335" />
+<COMPONENT type="1001" id="1266" >
+<cdparam x="1637" y="1057" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1353" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="1357" >
-<cdparam x="1776" y="1349" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =4" />
-<TGConnectingPoint num="0" id="1355" />
-<TGConnectingPoint num="1" id="1356" />
+<TGConnectingPoint num="0" id="1265" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="1359" >
-<cdparam x="1816" y="1457" />
+<COMPONENT type="1001" id="1268" >
+<cdparam x="2168" y="1421" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1358" />
+<TGConnectingPoint num="0" id="1267" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="1362" >
-<cdparam x="1870" y="1411" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =6" />
-<TGConnectingPoint num="0" id="1360" />
-<TGConnectingPoint num="1" id="1361" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1364" >
-<cdparam x="1910" y="1481" />
+<COMPONENT type="1001" id="1270" >
+<cdparam x="2267" y="1039" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1363" />
+<TGConnectingPoint num="0" id="1269" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="1366" >
-<cdparam x="1986" y="1543" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1273" >
+<cdparam x="1465" y="1192" />
+<sizeparam width="129" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1365" />
+<infoparam name="send event" value="receive_Application()" />
+<TGConnectingPoint num="0" id="1271" />
+<TGConnectingPoint num="1" id="1272" />
+<extraparam>
+<Data eventName="receive_Application" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="1369" >
-<cdparam x="2051" y="1466" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="1367" />
-<TGConnectingPoint num="1" id="1368" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1371" >
-<cdparam x="2091" y="1537" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1370" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="1374" >
-<cdparam x="1946" y="1493" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="1372" />
-<TGConnectingPoint num="1" id="1373" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="1377" >
-<cdparam x="1946" y="1434" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =8" />
-<TGConnectingPoint num="0" id="1375" />
-<TGConnectingPoint num="1" id="1376" />
-</COMPONENT>
-
-<COMPONENT type="301" id="1394" >
-<cdparam x="1825" y="889" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Syn
-" />
-<TGConnectingPoint num="0" id="1378" />
-<TGConnectingPoint num="1" id="1379" />
-<TGConnectingPoint num="2" id="1380" />
-<TGConnectingPoint num="3" id="1381" />
-<TGConnectingPoint num="4" id="1382" />
-<TGConnectingPoint num="5" id="1383" />
-<TGConnectingPoint num="6" id="1384" />
-<TGConnectingPoint num="7" id="1385" />
-<TGConnectingPoint num="8" id="1386" />
-<TGConnectingPoint num="9" id="1387" />
-<TGConnectingPoint num="10" id="1388" />
-<TGConnectingPoint num="11" id="1389" />
-<TGConnectingPoint num="12" id="1390" />
-<TGConnectingPoint num="13" id="1391" />
-<TGConnectingPoint num="14" id="1392" />
-<TGConnectingPoint num="15" id="1393" />
-<extraparam>
-<Line value="Syn" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="301" id="1411" >
-<cdparam x="1707" y="945" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="ack
-" />
-<TGConnectingPoint num="0" id="1395" />
-<TGConnectingPoint num="1" id="1396" />
-<TGConnectingPoint num="2" id="1397" />
-<TGConnectingPoint num="3" id="1398" />
-<TGConnectingPoint num="4" id="1399" />
-<TGConnectingPoint num="5" id="1400" />
-<TGConnectingPoint num="6" id="1401" />
-<TGConnectingPoint num="7" id="1402" />
-<TGConnectingPoint num="8" id="1403" />
-<TGConnectingPoint num="9" id="1404" />
-<TGConnectingPoint num="10" id="1405" />
-<TGConnectingPoint num="11" id="1406" />
-<TGConnectingPoint num="12" id="1407" />
-<TGConnectingPoint num="13" id="1408" />
-<TGConnectingPoint num="14" id="1409" />
-<TGConnectingPoint num="15" id="1410" />
-<extraparam>
-<Line value="ack" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1006" id="1414" >
-<cdparam x="2198" y="1198" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1412" />
-<TGConnectingPoint num="1" id="1413" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="1416" >
-<cdparam x="2227" y="1483" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1415" />
-</COMPONENT>
-
-<COMPONENT type="1007" id="1419" >
-<cdparam x="2198" y="1298" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="1417" />
-<TGConnectingPoint num="1" id="1418" />
-<extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1006" id="1422" >
-<cdparam x="2209" y="1365" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="1420" />
-<TGConnectingPoint num="1" id="1421" />
-<extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1011" id="1425" >
-<cdparam x="2161" y="1136" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="1423" />
-<TGConnectingPoint num="1" id="1424" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="1428" >
-<cdparam x="2214" y="1248" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1426" />
-<TGConnectingPoint num="1" id="1427" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1011" id="1431" >
-<cdparam x="2187" y="1424" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =2" />
-<TGConnectingPoint num="0" id="1429" />
-<TGConnectingPoint num="1" id="1430" />
-</COMPONENT>
-
-<COMPONENT type="1006" id="1434" >
-<cdparam x="2278" y="1122" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="1432" />
-<TGConnectingPoint num="1" id="1433" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="301" id="1451" >
-<cdparam x="2283" y="1065" />
-<sizeparam width="114" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="send Ack of SYN
-" />
-<TGConnectingPoint num="0" id="1435" />
-<TGConnectingPoint num="1" id="1436" />
-<TGConnectingPoint num="2" id="1437" />
-<TGConnectingPoint num="3" id="1438" />
-<TGConnectingPoint num="4" id="1439" />
-<TGConnectingPoint num="5" id="1440" />
-<TGConnectingPoint num="6" id="1441" />
-<TGConnectingPoint num="7" id="1442" />
-<TGConnectingPoint num="8" id="1443" />
-<TGConnectingPoint num="9" id="1444" />
-<TGConnectingPoint num="10" id="1445" />
-<TGConnectingPoint num="11" id="1446" />
-<TGConnectingPoint num="12" id="1447" />
-<TGConnectingPoint num="13" id="1448" />
-<TGConnectingPoint num="14" id="1449" />
-<TGConnectingPoint num="15" id="1450" />
-<extraparam>
-<Line value="send Ack of SYN" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1011" id="1454" >
-<cdparam x="2267" y="1267" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =2" />
-<TGConnectingPoint num="0" id="1452" />
-<TGConnectingPoint num="1" id="1453" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1456" >
-<cdparam x="2307" y="1324" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1455" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="1459" >
-<cdparam x="2294" y="1199" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="1457" />
-<TGConnectingPoint num="1" id="1458" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="1461" >
-<cdparam x="1637" y="1057" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1460" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1463" >
-<cdparam x="2168" y="1421" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1462" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="1465" >
-<cdparam x="2267" y="1039" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="1464" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="1468" >
-<cdparam x="1465" y="1192" />
-<sizeparam width="129" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="receive_Application()" />
-<TGConnectingPoint num="0" id="1466" />
-<TGConnectingPoint num="1" id="1467" />
-<extraparam>
-<Data eventName="receive_Application" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1009" id="1471" >
-<cdparam x="1698" y="1086" />
-<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="1276" >
+<cdparam x="1698" y="1086" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="read channel" value="temp(1) " />
-<TGConnectingPoint num="0" id="1469" />
-<TGConnectingPoint num="1" id="1470" />
+<TGConnectingPoint num="0" id="1274" />
+<TGConnectingPoint num="1" id="1275" />
 <extraparam>
 <Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<CONNECTOR type="115" id="1472" >
+<CONNECTOR type="115" id="1277" >
 <cdparam x="192" y="445" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="190" y="449" id="723" />
-<P2  x="188" y="476" id="884" />
+<P1  x="190" y="449" id="528" />
+<P2  x="188" y="476" id="689" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1473" >
+<CONNECTOR type="115" id="1278" >
 <cdparam x="1048" y="795" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="1048" y="795" id="862" />
-<P2  x="1728" y="865" id="784" />
+<P1  x="1048" y="795" id="667" />
+<P2  x="1728" y="865" id="589" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1474" >
+<CONNECTOR type="115" id="1279" >
 <cdparam x="1048" y="795" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="1089" y="954" id="834" />
-<P2  x="1208" y="1010" id="804" />
+<P1  x="1089" y="954" id="639" />
+<P2  x="1208" y="1010" id="609" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1475" >
+<CONNECTOR type="115" id="1280" >
 <cdparam x="1008" y="610" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="1008" y="610" id="938" />
-<P2  x="1008" y="696" id="866" />
+<P1  x="1008" y="610" id="743" />
+<P2  x="1008" y="696" id="671" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1476" >
+<CONNECTOR type="115" id="1281" >
 <cdparam x="722" y="614" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="722" y="614" id="953" />
-<P2  x="722" y="689" id="822" />
+<P1  x="722" y="614" id="758" />
+<P2  x="722" y="689" id="627" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1477" >
+<CONNECTOR type="115" id="1282" >
 <cdparam x="504" y="597" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="504" y="597" id="902" />
-<P2  x="572" y="702" id="816" />
+<P1  x="504" y="597" id="707" />
+<P2  x="572" y="702" id="621" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1478" >
+<CONNECTOR type="115" id="1283" >
 <cdparam x="464" y="637" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="464" y="637" id="903" />
-<P2  x="464" y="778" id="870" />
+<P1  x="464" y="637" id="708" />
+<P2  x="464" y="778" id="675" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1479" >
+<CONNECTOR type="115" id="1284" >
 <cdparam x="424" y="597" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="424" y="597" id="901" />
-<P2  x="346" y="759" id="850" />
+<P1  x="424" y="597" id="706" />
+<P2  x="346" y="759" id="655" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1480" >
+<CONNECTOR type="115" id="1285" >
 <cdparam x="289" y="619" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to read channel" value="null" />
-<P1  x="289" y="619" id="911" />
-<P2  x="230" y="803" id="1007" />
+<P1  x="289" y="619" id="716" />
+<P2  x="230" y="803" id="812" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1481" >
+<CONNECTOR type="115" id="1286" >
 <cdparam x="249" y="579" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="249" y="579" id="909" />
-<P2  x="132" y="789" id="854" />
+<P1  x="249" y="579" id="714" />
+<P2  x="132" y="789" id="659" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1482" >
+<CONNECTOR type="115" id="1287" >
 <cdparam x="371" y="93" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from for loop to notified event" value="null" />
-<P1  x="320" y="99" id="941" />
-<P2  x="374" y="128" id="949" />
+<P1  x="320" y="99" id="746" />
+<P2  x="374" y="128" id="754" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1483" >
+<CONNECTOR type="115" id="1288" >
 <cdparam x="234" y="169" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="235" y="169" id="947" />
-<P2  x="235" y="202" id="944" />
+<P1  x="235" y="169" id="752" />
+<P2  x="235" y="202" id="749" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1484" >
+<CONNECTOR type="115" id="1289" >
 <cdparam x="234" y="104" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from for loop to action state" value="null" />
-<P1  x="235" y="110" id="942" />
-<P2  x="235" y="139" id="946" />
+<P1  x="235" y="110" id="747" />
+<P2  x="235" y="139" id="751" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1485" >
+<CONNECTOR type="115" id="1290" >
 <cdparam x="234" y="47" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to for loop" value="null" />
-<P1  x="234" y="47" id="913" />
-<P2  x="235" y="80" id="940" />
+<P1  x="234" y="47" id="718" />
+<P2  x="235" y="80" id="745" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1486" >
+<CONNECTOR type="115" id="1291" >
 <cdparam x="425" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from notified event to choice" value="null" />
-<P1  x="374" y="158" id="950" />
-<P2  x="374" y="182" id="892" />
+<P1  x="374" y="158" id="755" />
+<P2  x="374" y="182" id="697" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1487" >
+<CONNECTOR type="115" id="1292" >
 <cdparam x="564" y="482" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to wait event" value="null" />
-<P1  x="464" y="322" id="976" />
-<P2  x="722" y="529" id="955" />
+<P1  x="464" y="322" id="781" />
+<P2  x="722" y="529" id="760" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1488" >
+<CONNECTOR type="115" id="1293" >
 <cdparam x="722" y="559" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="722" y="559" id="956" />
-<P2  x="722" y="584" id="952" />
+<P1  x="722" y="559" id="761" />
+<P2  x="722" y="584" id="757" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1489" >
+<CONNECTOR type="115" id="1294" >
 <cdparam x="604" y="442" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to wait event" value="null" />
-<P1  x="504" y="282" id="972" />
-<P2  x="1008" y="523" id="958" />
+<P1  x="504" y="282" id="777" />
+<P2  x="1008" y="523" id="763" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1490" >
+<CONNECTOR type="115" id="1295" >
 <cdparam x="1007" y="553" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="1008" y="553" id="959" />
-<P2  x="1008" y="580" id="937" />
+<P1  x="1008" y="553" id="764" />
+<P2  x="1008" y="580" id="742" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1491" >
+<CONNECTOR type="115" id="1296" >
 <cdparam x="524" y="442" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to wait event" value="null" />
-<P1  x="464" y="322" id="973" />
-<P2  x="464" y="487" id="961" />
+<P1  x="464" y="322" id="778" />
+<P2  x="464" y="487" id="766" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1492" >
+<CONNECTOR type="115" id="1297" >
 <cdparam x="330" y="428" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to wait event" value="null" />
-<P1  x="424" y="282" id="974" />
-<P2  x="289" y="463" id="964" />
+<P1  x="424" y="282" id="779" />
+<P2  x="289" y="463" id="769" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1493" >
+<CONNECTOR type="115" id="1298" >
 <cdparam x="318" y="520" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to choice" value="null" />
-<P1  x="289" y="493" id="965" />
-<P2  x="289" y="554" id="908" />
+<P1  x="289" y="493" id="770" />
+<P2  x="289" y="554" id="713" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1494" >
+<CONNECTOR type="115" id="1299" >
 <cdparam x="160" y="481" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to action state" value="null" />
-<P1  x="148" y="501" id="885" />
-<P2  x="148" y="544" id="932" />
+<P1  x="148" y="501" id="690" />
+<P2  x="148" y="544" id="737" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1495" >
+<CONNECTOR type="115" id="1300" >
 <cdparam x="290" y="388" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to wait event" value="null" />
-<P1  x="424" y="282" id="971" />
-<P2  x="188" y="378" id="967" />
+<P1  x="424" y="282" id="776" />
+<P2  x="188" y="378" id="772" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1496" >
+<CONNECTOR type="115" id="1301" >
 <cdparam x="229" y="467" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to choice" value="null" />
-<P1  x="188" y="408" id="968" />
-<P2  x="190" y="419" id="722" />
+<P1  x="188" y="408" id="773" />
+<P2  x="190" y="419" id="527" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1497" >
+<CONNECTOR type="115" id="1302" >
 <cdparam x="228" y="501" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="228" y="501" id="886" />
-<P2  x="228" y="524" id="981" />
+<P1  x="228" y="501" id="691" />
+<P2  x="228" y="524" id="786" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1498" >
+<CONNECTOR type="115" id="1303" >
 <cdparam x="334" y="207" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to wait event" value="null" />
-<P1  x="334" y="207" id="893" />
-<P2  x="301" y="223" id="985" />
+<P1  x="334" y="207" id="698" />
+<P2  x="301" y="223" id="790" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1499" >
+<CONNECTOR type="115" id="1304" >
 <cdparam x="301" y="253" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to stop state" value="null" />
-<P1  x="301" y="253" id="986" />
-<P2  x="301" y="285" id="988" />
+<P1  x="301" y="253" id="791" />
+<P2  x="301" y="285" id="793" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1500" >
+<CONNECTOR type="115" id="1305" >
 <cdparam x="464" y="517" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to choice" value="null" />
-<P1  x="464" y="517" id="962" />
-<P2  x="464" y="572" id="900" />
+<P1  x="464" y="517" id="767" />
+<P2  x="464" y="572" id="705" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1501" >
+<CONNECTOR type="115" id="1306" >
 <cdparam x="329" y="579" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="329" y="579" id="910" />
-<P2  x="329" y="609" id="983" />
+<P1  x="329" y="579" id="715" />
+<P2  x="329" y="609" id="788" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1502" >
+<CONNECTOR type="115" id="1307" >
 <cdparam x="126" y="574" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="148" y="574" id="933" />
-<P2  x="148" y="610" id="935" />
+<P1  x="148" y="574" id="738" />
+<P2  x="148" y="610" id="740" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1503" >
+<CONNECTOR type="115" id="1308" >
 <cdparam x="414" y="207" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to select" value="null" />
-<P1  x="414" y="207" id="894" />
-<P2  x="464" y="257" id="970" />
+<P1  x="414" y="207" id="699" />
+<P2  x="464" y="257" id="775" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1504" >
+<CONNECTOR type="115" id="1309" >
 <cdparam x="230" y="833" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="230" y="833" id="1008" />
-<P2  x="230" y="858" id="874" />
+<P1  x="230" y="833" id="813" />
+<P2  x="230" y="858" id="679" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1505" >
+<CONNECTOR type="115" id="1310" >
 <cdparam x="716" y="749" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="968" y="795" id="861" />
-<P2  x="843" y="859" id="844" />
+<P1  x="968" y="795" id="666" />
+<P2  x="843" y="859" id="649" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1506" >
+<CONNECTOR type="115" id="1311" >
 <cdparam x="720" y="1074" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="728" y="990" id="1057" />
-<P2  x="728" y="1027" id="1059" />
+<P1  x="728" y="990" id="862" />
+<P2  x="728" y="1027" id="864" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1507" >
+<CONNECTOR type="115" id="1312" >
 <cdparam x="733" y="899" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to action state" value="null" />
-<P1  x="803" y="884" id="845" />
-<P2  x="728" y="960" id="1056" />
+<P1  x="803" y="884" id="650" />
+<P2  x="728" y="960" id="861" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1508" >
+<CONNECTOR type="115" id="1313" >
 <cdparam x="800" y="938" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="843" y="924" id="847" />
-<P2  x="800" y="1004" id="838" />
+<P1  x="843" y="924" id="652" />
+<P2  x="800" y="1004" id="643" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1509" >
+<CONNECTOR type="115" id="1314" >
 <cdparam x="800" y="1057" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="800" y="1044" id="839" />
-<P2  x="800" y="1081" id="1061" />
+<P1  x="800" y="1044" id="644" />
+<P2  x="800" y="1081" id="866" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1510" >
+<CONNECTOR type="115" id="1315" >
 <cdparam x="132" y="886" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to write channel" value="null" />
-<P1  x="132" y="886" id="1188" />
-<P2  x="132" y="933" id="1023" />
+<P1  x="132" y="886" id="993" />
+<P2  x="132" y="933" id="828" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1511" >
+<CONNECTOR type="115" id="1316" >
 <cdparam x="943" y="1061" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="943" y="1060" id="827" />
-<P2  x="943" y="1118" id="1106" />
+<P1  x="943" y="1060" id="632" />
+<P2  x="943" y="1118" id="911" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1512" >
+<CONNECTOR type="115" id="1317" >
 <cdparam x="1049" y="1093" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1049" y="1092" id="879" />
-<P2  x="1049" y="1150" id="1131" />
+<P1  x="1049" y="1092" id="684" />
+<P2  x="1049" y="1150" id="936" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1513" >
+<CONNECTOR type="115" id="1318" >
 <cdparam x="1049" y="994" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="1049" y="994" id="835" />
-<P2  x="1049" y="1052" id="878" />
+<P1  x="1049" y="994" id="640" />
+<P2  x="1049" y="1052" id="683" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1514" >
+<CONNECTOR type="115" id="1319" >
 <cdparam x="696" y="742" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="722" y="729" id="823" />
-<P2  x="722" y="753" id="1156" />
+<P1  x="722" y="729" id="628" />
+<P2  x="722" y="753" id="961" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1515" >
+<CONNECTOR type="115" id="1320" >
 <cdparam x="132" y="1125" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to write channel" value="null" />
-<P1  x="132" y="1125" id="1162" />
-<P2  x="132" y="1162" id="1164" />
+<P1  x="132" y="1125" id="967" />
+<P2  x="132" y="1162" id="969" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1516" >
+<CONNECTOR type="115" id="1321" >
 <cdparam x="132" y="1192" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="132" y="1192" id="1165" />
-<P2  x="132" y="1231" id="1167" />
+<P1  x="132" y="1192" id="970" />
+<P2  x="132" y="1231" id="972" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1517" >
+<CONNECTOR type="115" id="1322" >
 <cdparam x="132" y="1066" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to send request" value="null" />
-<P1  x="132" y="1066" id="1021" />
-<P2  x="132" y="1095" id="1161" />
+<P1  x="132" y="1066" id="826" />
+<P2  x="132" y="1095" id="966" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1518" >
+<CONNECTOR type="115" id="1323" >
 <cdparam x="229" y="1127" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to write channel" value="null" />
-<P1  x="230" y="1127" id="1170" />
-<P2  x="230" y="1164" id="1172" />
+<P1  x="230" y="1127" id="975" />
+<P2  x="230" y="1164" id="977" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1519" >
+<CONNECTOR type="115" id="1324" >
 <cdparam x="346" y="1131" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to write channel" value="null" />
-<P1  x="346" y="1131" id="1176" />
-<P2  x="346" y="1168" id="1178" />
+<P1  x="346" y="1131" id="981" />
+<P2  x="346" y="1168" id="983" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1520" >
+<CONNECTOR type="115" id="1325" >
 <cdparam x="346" y="1051" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to send request" value="null" />
-<P1  x="346" y="1051" id="1027" />
-<P2  x="346" y="1101" id="1175" />
+<P1  x="346" y="1051" id="832" />
+<P2  x="346" y="1101" id="980" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1521" >
+<CONNECTOR type="115" id="1326" >
 <cdparam x="437" y="1118" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to write channel" value="null" />
-<P1  x="464" y="1115" id="1182" />
-<P2  x="464" y="1154" id="1184" />
+<P1  x="464" y="1115" id="987" />
+<P2  x="464" y="1154" id="989" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1522" >
+<CONNECTOR type="115" id="1327" >
 <cdparam x="438" y="1057" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to send request" value="null" />
-<P1  x="464" y="1057" id="1016" />
-<P2  x="464" y="1085" id="1181" />
+<P1  x="464" y="1057" id="821" />
+<P2  x="464" y="1085" id="986" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1523" >
+<CONNECTOR type="115" id="1328" >
 <cdparam x="132" y="808" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to action state" value="null" />
-<P1  x="132" y="829" id="855" />
-<P2  x="132" y="856" id="1187" />
+<P1  x="132" y="829" id="660" />
+<P2  x="132" y="856" id="992" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1524" >
+<CONNECTOR type="115" id="1329" >
 <cdparam x="230" y="898" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to action state" value="null" />
-<P1  x="230" y="898" id="875" />
-<P2  x="230" y="935" id="1190" />
+<P1  x="230" y="898" id="680" />
+<P2  x="230" y="935" id="995" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1525" >
+<CONNECTOR type="115" id="1330" >
 <cdparam x="230" y="965" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to write channel" value="null" />
-<P1  x="230" y="965" id="1191" />
-<P2  x="230" y="997" id="1010" />
+<P1  x="230" y="965" id="996" />
+<P2  x="230" y="997" id="815" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1526" >
+<CONNECTOR type="115" id="1331" >
 <cdparam x="346" y="799" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to action state" value="null" />
-<P1  x="346" y="799" id="851" />
-<P2  x="346" y="826" id="1196" />
+<P1  x="346" y="799" id="656" />
+<P2  x="346" y="826" id="1001" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1527" >
+<CONNECTOR type="115" id="1332" >
 <cdparam x="346" y="856" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to write channel" value="null" />
-<P1  x="346" y="856" id="1197" />
-<P2  x="346" y="895" id="1034" />
+<P1  x="346" y="856" id="1002" />
+<P2  x="346" y="895" id="839" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1528" >
+<CONNECTOR type="115" id="1333" >
 <cdparam x="439" y="818" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to action state" value="null" />
-<P1  x="464" y="818" id="871" />
-<P2  x="464" y="860" id="1193" />
+<P1  x="464" y="818" id="676" />
+<P2  x="464" y="860" id="998" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1529" >
+<CONNECTOR type="115" id="1334" >
 <cdparam x="439" y="890" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to write channel" value="null" />
-<P1  x="464" y="890" id="1194" />
-<P2  x="464" y="936" id="1031" />
+<P1  x="464" y="890" id="999" />
+<P2  x="464" y="936" id="836" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1530" >
+<CONNECTOR type="115" id="1335" >
 <cdparam x="132" y="963" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="132" y="963" id="1024" />
-<P2  x="132" y="981" id="1208" />
+<P1  x="132" y="963" id="829" />
+<P2  x="132" y="981" id="1013" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1531" >
+<CONNECTOR type="115" id="1336" >
 <cdparam x="132" y="1011" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to action state" value="null" />
-<P1  x="132" y="1011" id="1209" />
-<P2  x="132" y="1036" id="1020" />
+<P1  x="132" y="1011" id="1014" />
+<P2  x="132" y="1036" id="825" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1532" >
+<CONNECTOR type="115" id="1337" >
 <cdparam x="230" y="1027" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="230" y="1027" id="1011" />
-<P2  x="230" y="1047" id="1199" />
+<P1  x="230" y="1027" id="816" />
+<P2  x="230" y="1047" id="1004" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1533" >
+<CONNECTOR type="115" id="1338" >
 <cdparam x="228" y="1088" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to send request" value="null" />
-<P1  x="230" y="1077" id="1200" />
-<P2  x="230" y="1097" id="1169" />
+<P1  x="230" y="1077" id="1005" />
+<P2  x="230" y="1097" id="974" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1534" >
+<CONNECTOR type="115" id="1339" >
 <cdparam x="346" y="925" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="346" y="925" id="1035" />
-<P2  x="346" y="957" id="1202" />
+<P1  x="346" y="925" id="840" />
+<P2  x="346" y="957" id="1007" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1535" >
+<CONNECTOR type="115" id="1340" >
 <cdparam x="348" y="987" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to action state" value="null" />
-<P1  x="346" y="987" id="1203" />
-<P2  x="346" y="1021" id="1026" />
+<P1  x="346" y="987" id="1008" />
+<P2  x="346" y="1021" id="831" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1536" >
+<CONNECTOR type="115" id="1341" >
 <cdparam x="439" y="966" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="464" y="966" id="1032" />
-<P2  x="464" y="978" id="1205" />
+<P1  x="464" y="966" id="837" />
+<P2  x="464" y="978" id="1010" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1537" >
+<CONNECTOR type="115" id="1342" >
 <cdparam x="438" y="1008" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to action state" value="null" />
-<P1  x="464" y="1008" id="1206" />
-<P2  x="464" y="1027" id="1015" />
+<P1  x="464" y="1008" id="1011" />
+<P2  x="464" y="1027" id="820" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1538" >
+<CONNECTOR type="115" id="1343" >
 <cdparam x="722" y="783" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="722" y="783" id="1157" />
-<P2  x="722" y="808" id="1211" />
+<P1  x="722" y="783" id="962" />
+<P2  x="722" y="808" id="1016" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1539" >
+<CONNECTOR type="115" id="1344" >
 <cdparam x="722" y="838" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to stop state" value="null" />
-<P1  x="722" y="838" id="1212" />
-<P2  x="722" y="860" id="1159" />
+<P1  x="722" y="838" id="1017" />
+<P2  x="722" y="860" id="964" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1540" >
+<CONNECTOR type="115" id="1345" >
 <cdparam x="800" y="1111" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="800" y="1111" id="1062" />
-<P2  x="800" y="1136" id="1214" />
+<P1  x="800" y="1111" id="867" />
+<P2  x="800" y="1136" id="1019" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1541" >
+<CONNECTOR type="115" id="1346" >
 <cdparam x="798" y="1166" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to action state" value="null" />
-<P1  x="800" y="1166" id="1215" />
-<P2  x="800" y="1188" id="1098" />
+<P1  x="800" y="1166" id="1020" />
+<P2  x="800" y="1188" id="903" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1542" >
+<CONNECTOR type="115" id="1347" >
 <cdparam x="943" y="1148" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="943" y="1148" id="1107" />
-<P2  x="943" y="1173" id="1217" />
+<P1  x="943" y="1148" id="912" />
+<P2  x="943" y="1173" id="1022" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1543" >
+<CONNECTOR type="115" id="1348" >
 <cdparam x="950" y="1201" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to action state" value="null" />
-<P1  x="943" y="1203" id="1218" />
-<P2  x="943" y="1229" id="1126" />
+<P1  x="943" y="1203" id="1023" />
+<P2  x="943" y="1229" id="931" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1544" >
+<CONNECTOR type="115" id="1349" >
 <cdparam x="1049" y="1180" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1049" y="1180" id="1132" />
-<P2  x="1049" y="1206" id="1220" />
+<P1  x="1049" y="1180" id="937" />
+<P2  x="1049" y="1206" id="1025" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1545" >
+<CONNECTOR type="115" id="1350" >
 <cdparam x="1049" y="1223" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to action state" value="null" />
-<P1  x="1049" y="1236" id="1221" />
-<P2  x="1049" y="1261" id="1151" />
+<P1  x="1049" y="1236" id="1026" />
+<P2  x="1049" y="1261" id="956" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1546" >
+<CONNECTOR type="115" id="1351" >
 <cdparam x="883" y="884" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="883" y="884" id="846" />
-<P2  x="883" y="917" id="1225" />
+<P1  x="883" y="884" id="651" />
+<P2  x="883" y="917" id="1030" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1547" >
+<CONNECTOR type="115" id="1352" >
 <cdparam x="612" y="727" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="612" y="727" id="818" />
-<P2  x="612" y="757" id="1223" />
+<P1  x="612" y="727" id="623" />
+<P2  x="612" y="757" id="1028" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1548" >
+<CONNECTOR type="115" id="1353" >
 <cdparam x="532" y="727" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to action state" value="null" />
-<P1  x="532" y="727" id="817" />
-<P2  x="496" y="763" id="1101" />
+<P1  x="532" y="727" id="622" />
+<P2  x="496" y="763" id="906" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1549" >
+<CONNECTOR type="115" id="1354" >
 <cdparam x="799" y="1218" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="800" y="1218" id="1099" />
-<P2  x="800" y="1265" id="1037" />
+<P1  x="800" y="1218" id="904" />
+<P2  x="800" y="1265" id="842" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1550" >
+<CONNECTOR type="115" id="1355" >
 <cdparam x="1009" y="954" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="1009" y="954" id="833" />
-<P2  x="943" y="1020" id="826" />
+<P1  x="1009" y="954" id="638" />
+<P2  x="943" y="1020" id="631" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1551" >
+<CONNECTOR type="115" id="1356" >
 <cdparam x="229" y="1194" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="230" y="1194" id="1173" />
-<P2  x="230" y="1232" id="1013" />
+<P1  x="230" y="1194" id="978" />
+<P2  x="230" y="1232" id="818" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1552" >
+<CONNECTOR type="115" id="1357" >
 <cdparam x="346" y="1198" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="346" y="1198" id="1179" />
-<P2  x="346" y="1224" id="1029" />
+<P1  x="346" y="1198" id="984" />
+<P2  x="346" y="1224" id="834" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1553" >
+<CONNECTOR type="115" id="1358" >
 <cdparam x="438" y="1184" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="464" y="1184" id="1185" />
-<P2  x="464" y="1208" id="1018" />
+<P1  x="464" y="1184" id="990" />
+<P2  x="464" y="1208" id="823" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1554" >
+<CONNECTOR type="115" id="1359" >
 <cdparam x="496" y="793" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="496" y="793" id="1102" />
-<P2  x="496" y="825" id="1104" />
+<P1  x="496" y="793" id="907" />
+<P2  x="496" y="825" id="909" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1555" >
+<CONNECTOR type="115" id="1360" >
 <cdparam x="943" y="1259" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="943" y="1259" id="1127" />
-<P2  x="943" y="1306" id="1129" />
+<P1  x="943" y="1259" id="932" />
+<P2  x="943" y="1306" id="934" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1556" >
+<CONNECTOR type="115" id="1361" >
 <cdparam x="1008" y="736" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to choice" value="null" />
-<P1  x="1008" y="736" id="867" />
-<P2  x="1008" y="770" id="860" />
+<P1  x="1008" y="736" id="672" />
+<P2  x="1008" y="770" id="665" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1557" >
+<CONNECTOR type="115" id="1362" >
 <cdparam x="1008" y="835" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="1008" y="835" id="863" />
-<P2  x="1049" y="929" id="832" />
+<P1  x="1008" y="835" id="668" />
+<P2  x="1049" y="929" id="637" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1558" >
+<CONNECTOR type="115" id="1363" >
 <cdparam x="1049" y="1291" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1049" y="1291" id="1152" />
-<P2  x="1049" y="1336" id="1154" />
+<P1  x="1049" y="1291" id="957" />
+<P2  x="1049" y="1336" id="959" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1559" >
+<CONNECTOR type="115" id="1364" >
 <cdparam x="1208" y="1152" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1208" y="1142" id="811" />
-<P2  x="1208" y="1209" id="1227" />
+<P1  x="1208" y="1142" id="616" />
+<P2  x="1208" y="1209" id="1032" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1560" >
+<CONNECTOR type="115" id="1365" >
 <cdparam x="1208" y="1239" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to action state" value="null" />
-<P1  x="1208" y="1239" id="1228" />
-<P2  x="1208" y="1290" id="1247" />
+<P1  x="1208" y="1239" id="1033" />
+<P2  x="1208" y="1290" id="1052" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1561" >
+<CONNECTOR type="115" id="1366" >
 <cdparam x="1208" y="1320" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to send event" value="null" />
-<P1  x="1208" y="1320" id="1248" />
-<P2  x="1208" y="1346" id="1255" />
+<P1  x="1208" y="1320" id="1053" />
+<P2  x="1208" y="1346" id="1060" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1562" >
+<CONNECTOR type="115" id="1367" >
 <cdparam x="1206" y="1385" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to action state" value="null" />
-<P1  x="1208" y="1376" id="1256" />
-<P2  x="1208" y="1397" id="1252" />
+<P1  x="1208" y="1376" id="1061" />
+<P2  x="1208" y="1397" id="1057" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1563" >
+<CONNECTOR type="115" id="1368" >
 <cdparam x="1206" y="1088" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="1208" y="1075" id="807" />
-<P2  x="1208" y="1102" id="810" />
+<P1  x="1208" y="1075" id="612" />
+<P2  x="1208" y="1102" id="615" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1564" >
+<CONNECTOR type="115" id="1369" >
 <cdparam x="1248" y="1035" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="1248" y="1035" id="806" />
-<P2  x="1287" y="1065" id="1258" />
+<P1  x="1248" y="1035" id="611" />
+<P2  x="1287" y="1065" id="1063" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1565" >
+<CONNECTOR type="115" id="1370" >
 <cdparam x="1207" y="1427" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1208" y="1427" id="1253" />
-<P2  x="1208" y="1466" id="1250" />
+<P1  x="1208" y="1427" id="1058" />
+<P2  x="1208" y="1466" id="1055" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1566" >
+<CONNECTOR type="115" id="1371" >
 <cdparam x="1553" y="1019" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="1567" y="1021" id="777" />
-<P2  x="1529" y="1059" id="770" />
+<P1  x="1567" y="1021" id="582" />
+<P2  x="1529" y="1059" id="575" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1567" >
+<CONNECTOR type="115" id="1372" >
 <cdparam x="1529" y="1324" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1529" y="1289" id="767" />
-<P2  x="1529" y="1343" id="1265" />
+<P1  x="1529" y="1289" id="572" />
+<P2  x="1529" y="1343" id="1070" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1568" >
+<CONNECTOR type="115" id="1373" >
 <cdparam x="1684" y="929" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to send event" value="null" />
-<P1  x="1728" y="930" id="787" />
-<P2  x="1728" y="1021" id="1268" />
+<P1  x="1728" y="930" id="592" />
+<P2  x="1728" y="1021" id="1073" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1569" >
+<CONNECTOR type="115" id="1374" >
 <cdparam x="1615" y="1283" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1641" y="1270" id="791" />
-<P2  x="1641" y="1294" id="1305" />
+<P1  x="1641" y="1270" id="596" />
+<P2  x="1641" y="1294" id="1110" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1570" >
+<CONNECTOR type="115" id="1375" >
 <cdparam x="1641" y="1324" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1641" y="1324" id="1306" />
-<P2  x="1641" y="1343" id="1347" />
+<P1  x="1641" y="1324" id="1111" />
+<P2  x="1641" y="1343" id="1152" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1571" >
+<CONNECTOR type="115" id="1376" >
 <cdparam x="1529" y="1373" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1529" y="1373" id="1266" />
-<P2  x="1529" y="1400" id="1344" />
+<P1  x="1529" y="1373" id="1071" />
+<P2  x="1529" y="1400" id="1149" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1572" >
+<CONNECTOR type="115" id="1377" >
 <cdparam x="1529" y="1422" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to stop state" value="null" />
-<P1  x="1529" y="1430" id="1345" />
-<P2  x="1529" y="1452" id="1260" />
+<P1  x="1529" y="1430" id="1150" />
+<P2  x="1529" y="1452" id="1065" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1573" >
+<CONNECTOR type="115" id="1378" >
 <cdparam x="1642" y="1373" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to write channel" value="null" />
-<P1  x="1641" y="1373" id="1348" />
-<P2  x="1641" y="1399" id="1350" />
+<P1  x="1641" y="1373" id="1153" />
+<P2  x="1641" y="1399" id="1155" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1574" >
+<CONNECTOR type="115" id="1379" >
 <cdparam x="1956" y="1361" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to action state" value="null" />
-<P1  x="1956" y="1361" id="745" />
-<P2  x="1920" y="1406" id="1360" />
+<P1  x="1956" y="1361" id="550" />
+<P2  x="1920" y="1406" id="1165" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1575" >
+<CONNECTOR type="115" id="1380" >
 <cdparam x="2100" y="1490" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="2101" y="1491" id="1368" />
-<P2  x="2101" y="1532" id="1370" />
+<P1  x="2101" y="1491" id="1173" />
+<P2  x="2101" y="1532" id="1175" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1576" >
+<CONNECTOR type="115" id="1381" >
 <cdparam x="1996" y="1401" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to action state" value="null" />
-<P1  x="1996" y="1401" id="747" />
-<P2  x="1996" y="1429" id="1375" />
+<P1  x="1996" y="1401" id="552" />
+<P2  x="1996" y="1429" id="1180" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1577" >
+<CONNECTOR type="115" id="1382" >
 <cdparam x="1996" y="1459" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to action state" value="null" />
-<P1  x="1996" y="1459" id="1376" />
-<P2  x="1996" y="1488" id="1372" />
+<P1  x="1996" y="1459" id="1181" />
+<P2  x="1996" y="1488" id="1177" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1578" >
+<CONNECTOR type="115" id="1383" >
 <cdparam x="2021" y="1038" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="2237" y="966" id="737" />
-<P2  x="2237" y="1054" id="794" />
+<P1  x="2237" y="966" id="542" />
+<P2  x="2237" y="1054" id="599" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1579" >
+<CONNECTOR type="115" id="1384" >
 <cdparam x="2217" y="1323" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to write channel" value="null" />
-<P1  x="2237" y="1323" id="1418" />
-<P2  x="2237" y="1360" id="1420" />
+<P1  x="2237" y="1323" id="1223" />
+<P2  x="2237" y="1360" id="1225" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1580" >
+<CONNECTOR type="115" id="1385" >
 <cdparam x="2218" y="1094" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to action state" value="null" />
-<P1  x="2237" y="1094" id="795" />
-<P2  x="2237" y="1131" id="1423" />
+<P1  x="2237" y="1094" id="600" />
+<P2  x="2237" y="1131" id="1228" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1581" >
+<CONNECTOR type="115" id="1386" >
 <cdparam x="2218" y="1161" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to write channel" value="null" />
-<P1  x="2237" y="1161" id="1424" />
-<P2  x="2237" y="1193" id="1412" />
+<P1  x="2237" y="1161" id="1229" />
+<P2  x="2237" y="1193" id="1217" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1582" >
+<CONNECTOR type="115" id="1387" >
 <cdparam x="2218" y="1223" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="2237" y="1223" id="1413" />
-<P2  x="2237" y="1243" id="1426" />
+<P1  x="2237" y="1223" id="1218" />
+<P2  x="2237" y="1243" id="1231" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1583" >
+<CONNECTOR type="115" id="1388" >
 <cdparam x="2216" y="1284" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to send request" value="null" />
-<P1  x="2237" y="1273" id="1427" />
-<P2  x="2237" y="1293" id="1417" />
+<P1  x="2237" y="1273" id="1232" />
+<P2  x="2237" y="1293" id="1222" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1584" >
+<CONNECTOR type="115" id="1389" >
 <cdparam x="2217" y="1390" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to action state" value="null" />
-<P1  x="2237" y="1390" id="1421" />
-<P2  x="2237" y="1419" id="1429" />
+<P1  x="2237" y="1390" id="1226" />
+<P2  x="2237" y="1419" id="1234" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1585" >
+<CONNECTOR type="115" id="1390" >
 <cdparam x="2341" y="1060" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="2317" y="1059" id="799" />
-<P2  x="2317" y="1117" id="1432" />
+<P1  x="2317" y="1059" id="604" />
+<P2  x="2317" y="1117" id="1237" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1586" >
+<CONNECTOR type="115" id="1391" >
 <cdparam x="1529" y="1099" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1529" y="1099" id="771" />
-<P2  x="1529" y="1127" id="1262" />
+<P1  x="1529" y="1099" id="576" />
+<P2  x="1529" y="1127" id="1067" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1587" >
+<CONNECTOR type="115" id="1392" >
 <cdparam x="2101" y="1433" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to action state" value="null" />
-<P1  x="2101" y="1433" id="731" />
-<P2  x="2101" y="1461" id="1367" />
+<P1  x="2101" y="1433" id="536" />
+<P2  x="2101" y="1461" id="1172" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1588" >
+<CONNECTOR type="115" id="1393" >
 <cdparam x="2158" y="1460" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="2141" y="1393" id="730" />
-<P2  x="2178" y="1416" id="1462" />
+<P1  x="2141" y="1393" id="535" />
+<P2  x="2178" y="1416" id="1267" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1589" >
+<CONNECTOR type="115" id="1394" >
 <cdparam x="1688" y="890" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="1688" y="890" id="785" />
-<P2  x="1607" y="996" id="776" />
+<P1  x="1688" y="890" id="590" />
+<P2  x="1607" y="996" id="581" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1590" >
+<CONNECTOR type="115" id="1395" >
 <cdparam x="1768" y="890" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="1768" y="890" id="786" />
-<P2  x="2277" y="941" id="736" />
+<P1  x="1768" y="890" id="591" />
+<P2  x="2277" y="941" id="541" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1591" >
+<CONNECTOR type="115" id="1396" >
 <cdparam x="2317" y="966" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="2317" y="966" id="738" />
-<P2  x="2317" y="1019" id="798" />
+<P1  x="2317" y="966" id="543" />
+<P2  x="2317" y="1019" id="603" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1592" >
+<CONNECTOR type="115" id="1397" >
 <cdparam x="2341" y="1147" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="2317" y="1147" id="1433" />
-<P2  x="2317" y="1194" id="1457" />
+<P1  x="2317" y="1147" id="1238" />
+<P2  x="2317" y="1194" id="1262" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1593" >
+<CONNECTOR type="115" id="1398" >
 <cdparam x="2341" y="1224" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to send event" value="null" />
-<P1  x="2317" y="1224" id="1458" />
-<P2  x="2317" y="1262" id="1452" />
+<P1  x="2317" y="1224" id="1263" />
+<P2  x="2317" y="1262" id="1257" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1594" >
+<CONNECTOR type="115" id="1399" >
 <cdparam x="1731" y="1051" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to choice" value="null" />
-<P1  x="1728" y="1051" id="1269" />
-<P2  x="1728" y="1081" id="1469" />
+<P1  x="1728" y="1051" id="1074" />
+<P2  x="1728" y="1081" id="1274" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1595" >
+<CONNECTOR type="115" id="1400" >
 <cdparam x="1647" y="1021" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="1647" y="1021" id="778" />
-<P2  x="1647" y="1052" id="1460" />
+<P1  x="1647" y="1021" id="583" />
+<P2  x="1647" y="1052" id="1265" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1596" >
+<CONNECTOR type="115" id="1401" >
 <cdparam x="1826" y="1324" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to action state" value="null" />
-<P1  x="1826" y="1324" id="755" />
-<P2  x="1826" y="1344" id="1355" />
+<P1  x="1826" y="1324" id="560" />
+<P2  x="1826" y="1344" id="1160" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1597" >
+<CONNECTOR type="115" id="1402" >
 <cdparam x="1826" y="1374" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1826" y="1374" id="1356" />
-<P2  x="1826" y="1452" id="1358" />
+<P1  x="1826" y="1374" id="1161" />
+<P2  x="1826" y="1452" id="1163" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1598" >
+<CONNECTOR type="115" id="1403" >
 <cdparam x="1786" y="1284" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="1786" y="1284" id="753" />
-<P2  x="1740" y="1330" id="1353" />
+<P1  x="1786" y="1284" id="558" />
+<P2  x="1740" y="1330" id="1158" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1599" >
+<CONNECTOR type="115" id="1404" >
 <cdparam x="1920" y="1436" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1920" y="1436" id="1361" />
-<P2  x="1920" y="1476" id="1363" />
+<P1  x="1920" y="1436" id="1166" />
+<P2  x="1920" y="1476" id="1168" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1600" >
+<CONNECTOR type="115" id="1405" >
 <cdparam x="1996" y="1518" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1996" y="1518" id="1373" />
-<P2  x="1996" y="1538" id="1365" />
+<P1  x="1996" y="1518" id="1178" />
+<P2  x="1996" y="1538" id="1170" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1601" >
+<CONNECTOR type="115" id="1406" >
 <cdparam x="2036" y="1361" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="2036" y="1361" id="746" />
-<P2  x="2101" y="1368" id="728" />
+<P1  x="2036" y="1361" id="551" />
+<P2  x="2101" y="1368" id="533" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1602" >
+<CONNECTOR type="115" id="1407" >
 <cdparam x="1866" y="1284" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="1866" y="1284" id="754" />
-<P2  x="1996" y="1336" id="744" />
+<P1  x="1866" y="1284" id="559" />
+<P2  x="1996" y="1336" id="549" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1603" >
+<CONNECTOR type="115" id="1408" >
 <cdparam x="2341" y="1292" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="2317" y="1292" id="1453" />
-<P2  x="2317" y="1319" id="1455" />
+<P1  x="2317" y="1292" id="1258" />
+<P2  x="2317" y="1319" id="1260" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1604" >
+<CONNECTOR type="115" id="1409" >
 <cdparam x="2217" y="1449" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="2237" y="1449" id="1430" />
-<P2  x="2237" y="1478" id="1415" />
+<P1  x="2237" y="1449" id="1235" />
+<P2  x="2237" y="1478" id="1220" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1605" >
+<CONNECTOR type="115" id="1410" >
 <cdparam x="2277" y="1006" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to stop state" value="null" />
-<P1  x="2277" y="1006" id="739" />
-<P2  x="2277" y="1034" id="1464" />
+<P1  x="2277" y="1006" id="544" />
+<P2  x="2277" y="1034" id="1269" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1606" >
+<CONNECTOR type="115" id="1411" >
 <cdparam x="1642" y="1429" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="1641" y="1429" id="1351" />
-<P2  x="1641" y="1463" id="1308" />
+<P1  x="1641" y="1429" id="1156" />
+<P2  x="1641" y="1463" id="1113" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1607" >
+<CONNECTOR type="115" id="1412" >
 <cdparam x="1529" y="1157" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1529" y="1157" id="1263" />
-<P2  x="1529" y="1187" id="1466" />
+<P1  x="1529" y="1157" id="1068" />
+<P2  x="1529" y="1187" id="1271" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1608" >
+<CONNECTOR type="115" id="1413" >
 <cdparam x="1529" y="1217" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to execI" value="null" />
-<P1  x="1529" y="1217" id="1467" />
-<P2  x="1529" y="1249" id="766" />
+<P1  x="1529" y="1217" id="1272" />
+<P2  x="1529" y="1249" id="571" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1609" >
+<CONNECTOR type="115" id="1414" >
 <cdparam x="1691" y="1156" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="1688" y="1156" id="761" />
-<P2  x="1641" y="1230" id="790" />
+<P1  x="1688" y="1156" id="566" />
+<P2  x="1641" y="1230" id="595" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1610" >
+<CONNECTOR type="115" id="1415" >
 <cdparam x="1771" y="1156" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to choice" value="null" />
-<P1  x="1768" y="1156" id="762" />
-<P2  x="1826" y="1259" id="752" />
+<P1  x="1768" y="1156" id="567" />
+<P2  x="1826" y="1259" id="557" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="1611" >
+<CONNECTOR type="115" id="1416" >
 <cdparam x="1731" y="1111" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to choice" value="null" />
-<P1  x="1728" y="1111" id="1470" />
-<P2  x="1728" y="1131" id="760" />
+<P1  x="1728" y="1111" id="1275" />
+<P2  x="1728" y="1131" id="565" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-</Modeling>
-
-
-
-
-<Modeling type="TML Architecture" nameTab="Mapping1" >
-<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
-<COMPONENT type="1102" id="1636" >
-<cdparam x="612" y="450" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="Timer" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1012" id="1424" >
+<cdparam x="509" y="222" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Bus0" value="name" />
-<TGConnectingPoint num="0" id="1612" />
-<TGConnectingPoint num="1" id="1613" />
-<TGConnectingPoint num="2" id="1614" />
-<TGConnectingPoint num="3" id="1615" />
-<TGConnectingPoint num="4" id="1616" />
-<TGConnectingPoint num="5" id="1617" />
-<TGConnectingPoint num="6" id="1618" />
-<TGConnectingPoint num="7" id="1619" />
-<TGConnectingPoint num="8" id="1620" />
-<TGConnectingPoint num="9" id="1621" />
-<TGConnectingPoint num="10" id="1622" />
-<TGConnectingPoint num="11" id="1623" />
-<TGConnectingPoint num="12" id="1624" />
-<TGConnectingPoint num="13" id="1625" />
-<TGConnectingPoint num="14" id="1626" />
-<TGConnectingPoint num="15" id="1627" />
-<TGConnectingPoint num="16" id="1628" />
-<TGConnectingPoint num="17" id="1629" />
-<TGConnectingPoint num="18" id="1630" />
-<TGConnectingPoint num="19" id="1631" />
-<TGConnectingPoint num="20" id="1632" />
-<TGConnectingPoint num="21" id="1633" />
-<TGConnectingPoint num="22" id="1634" />
-<TGConnectingPoint num="23" id="1635" />
-<extraparam>
-<info stereotype="BUS-RR" nodeName="Bus0" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
-</extraparam>
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="1420" />
+<TGConnectingPoint num="1" id="1421" />
+<TGConnectingPoint num="2" id="1422" />
+<TGConnectingPoint num="3" id="1423" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="1417" >
+<father id="1424" num="0" />
+<cdparam x="464" y="232" />
+<sizeparam width="51" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ x==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1418" >
+<father id="1424" num="1" />
+<cdparam x="544" y="234" />
+<sizeparam width="41" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ x&gt;0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1419" >
+<father id="1424" num="2" />
+<cdparam x="529" y="267" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1105" id="1661" >
-<cdparam x="797" y="120" />
-<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="1426" >
+<cdparam x="489" y="26" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Memory0" value="name" />
-<TGConnectingPoint num="0" id="1637" />
-<TGConnectingPoint num="1" id="1638" />
-<TGConnectingPoint num="2" id="1639" />
-<TGConnectingPoint num="3" id="1640" />
-<TGConnectingPoint num="4" id="1641" />
-<TGConnectingPoint num="5" id="1642" />
-<TGConnectingPoint num="6" id="1643" />
-<TGConnectingPoint num="7" id="1644" />
-<TGConnectingPoint num="8" id="1645" />
-<TGConnectingPoint num="9" id="1646" />
-<TGConnectingPoint num="10" id="1647" />
-<TGConnectingPoint num="11" id="1648" />
-<TGConnectingPoint num="12" id="1649" />
-<TGConnectingPoint num="13" id="1650" />
-<TGConnectingPoint num="14" id="1651" />
-<TGConnectingPoint num="15" id="1652" />
-<TGConnectingPoint num="16" id="1653" />
-<TGConnectingPoint num="17" id="1654" />
-<TGConnectingPoint num="18" id="1655" />
-<TGConnectingPoint num="19" id="1656" />
-<TGConnectingPoint num="20" id="1657" />
-<TGConnectingPoint num="21" id="1658" />
-<TGConnectingPoint num="22" id="1659" />
-<TGConnectingPoint num="23" id="1660" />
-<extraparam>
-<info stereotype="MEMORY" nodeName="Memory0" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
-</extraparam>
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1425" />
 </COMPONENT>
 
-<COMPONENT type="1100" id="1731" >
-<cdparam x="51" y="90" />
-<sizeparam width="459" height="321" minWidth="150" minHeight="150" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1428" >
+<cdparam x="417" y="407" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="cpu0" value="name" />
-<TGConnectingPoint num="0" id="1707" />
-<TGConnectingPoint num="1" id="1708" />
-<TGConnectingPoint num="2" id="1709" />
-<TGConnectingPoint num="3" id="1710" />
-<TGConnectingPoint num="4" id="1711" />
-<TGConnectingPoint num="5" id="1712" />
-<TGConnectingPoint num="6" id="1713" />
-<TGConnectingPoint num="7" id="1714" />
-<TGConnectingPoint num="8" id="1715" />
-<TGConnectingPoint num="9" id="1716" />
-<TGConnectingPoint num="10" id="1717" />
-<TGConnectingPoint num="11" id="1718" />
-<TGConnectingPoint num="12" id="1719" />
-<TGConnectingPoint num="13" id="1720" />
-<TGConnectingPoint num="14" id="1721" />
-<TGConnectingPoint num="15" id="1722" />
-<TGConnectingPoint num="16" id="1723" />
-<TGConnectingPoint num="17" id="1724" />
-<TGConnectingPoint num="18" id="1725" />
-<TGConnectingPoint num="19" id="1726" />
-<TGConnectingPoint num="20" id="1727" />
-<TGConnectingPoint num="21" id="1728" />
-<TGConnectingPoint num="22" id="1729" />
-<TGConnectingPoint num="23" id="1730" />
-<extraparam>
-<info stereotype="CPURRPB" nodeName="cpu0" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="1"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="99"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" MECType="0" encryption="0"/>
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1427" />
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="1670" >
-<father id="1731" num="0" />
-<cdparam x="92" y="154" />
-<sizeparam width="163" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="296" minY="0" maxY="271" />
-<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
-<TGConnectingPoint num="0" id="1662" />
-<TGConnectingPoint num="1" id="1663" />
-<TGConnectingPoint num="2" id="1664" />
-<TGConnectingPoint num="3" id="1665" />
-<TGConnectingPoint num="4" id="1666" />
-<TGConnectingPoint num="5" id="1667" />
-<TGConnectingPoint num="6" id="1668" />
-<TGConnectingPoint num="7" id="1669" />
-<extraparam>
-<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="1679" >
-<father id="1731" num="1" />
-<cdparam x="291" y="153" />
-<sizeparam width="136" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1008" id="1431" >
+<cdparam x="396" y="339" />
+<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="323" minY="0" maxY="271" />
-<infoparam name="TGComponent" value="AppC::SmartCard" />
-<TGConnectingPoint num="0" id="1671" />
-<TGConnectingPoint num="1" id="1672" />
-<TGConnectingPoint num="2" id="1673" />
-<TGConnectingPoint num="3" id="1674" />
-<TGConnectingPoint num="4" id="1675" />
-<TGConnectingPoint num="5" id="1676" />
-<TGConnectingPoint num="6" id="1677" />
-<TGConnectingPoint num="7" id="1678" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="timeOut()" />
+<TGConnectingPoint num="0" id="1429" />
+<TGConnectingPoint num="1" id="1430" />
 <extraparam>
-<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Data eventName="timeOut" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="1688" >
-<father id="1731" num="2" />
-<cdparam x="96" y="246" />
-<sizeparam width="108" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="1434" >
+<cdparam x="599" y="300" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="351" minY="0" maxY="271" />
-<infoparam name="TGComponent" value="AppC::TCPIP" />
-<TGConnectingPoint num="0" id="1680" />
-<TGConnectingPoint num="1" id="1681" />
-<TGConnectingPoint num="2" id="1682" />
-<TGConnectingPoint num="3" id="1683" />
-<TGConnectingPoint num="4" id="1684" />
-<TGConnectingPoint num="5" id="1685" />
-<TGConnectingPoint num="6" id="1686" />
-<TGConnectingPoint num="7" id="1687" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="stop() " />
+<TGConnectingPoint num="0" id="1432" />
+<TGConnectingPoint num="1" id="1433" />
 <extraparam>
-<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Data eventName="stop" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="1697" >
-<father id="1731" num="3" />
-<cdparam x="290" y="234" />
-<sizeparam width="139" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1436" >
+<cdparam x="612" y="365" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="320" minY="0" maxY="271" />
-<infoparam name="TGComponent" value="AppC::Application" />
-<TGConnectingPoint num="0" id="1689" />
-<TGConnectingPoint num="1" id="1690" />
-<TGConnectingPoint num="2" id="1691" />
-<TGConnectingPoint num="3" id="1692" />
-<TGConnectingPoint num="4" id="1693" />
-<TGConnectingPoint num="5" id="1694" />
-<TGConnectingPoint num="6" id="1695" />
-<TGConnectingPoint num="7" id="1696" />
-<extraparam>
-<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="1706" >
-<father id="1731" num="4" />
-<cdparam x="226" y="304" />
-<sizeparam width="109" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1435" />
+</COMPONENT>
+
+<COMPONENT type="1017" id="1439" >
+<cdparam x="491" y="157" />
+<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="350" minY="0" maxY="271" />
-<infoparam name="TGComponent" value="AppC::Timer" />
-<TGConnectingPoint num="0" id="1698" />
-<TGConnectingPoint num="1" id="1699" />
-<TGConnectingPoint num="2" id="1700" />
-<TGConnectingPoint num="3" id="1701" />
-<TGConnectingPoint num="4" id="1702" />
-<TGConnectingPoint num="5" id="1703" />
-<TGConnectingPoint num="6" id="1704" />
-<TGConnectingPoint num="7" id="1705" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="notified event" value="x=?stop()" />
+<TGConnectingPoint num="0" id="1437" />
+<TGConnectingPoint num="1" id="1438" />
 <extraparam>
-<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Data eventName="stop" variable="x" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="125" id="1732" >
-<cdparam x="800" y="322" />
+<CONNECTOR type="115" id="1440" >
+<cdparam x="496" y="46" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="847" y="320" id="1651" />
-<P2  x="799" y="450" id="1621" />
+<infoparam name="connector" value="null" />
+<P1  x="496" y="46" id="1425" />
+<P2  x="526" y="152" id="1437" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="1733" >
-<cdparam x="510" y="411" />
+<CONNECTOR type="115" id="1441" >
+<cdparam x="484" y="237" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="510" y="411" id="1714" />
-<P2  x="612" y="462" id="1622" />
+<infoparam name="connector" value="null" />
+<P1  x="484" y="237" id="1421" />
+<P2  x="427" y="334" id="1429" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-
-</TMLArchiDiagramPanel>
-
-</Modeling>
-
-
-
-
-<Modeling type="TML Architecture" nameTab="Mapping2" >
-<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
-<COMPONENT type="1105" id="1758" >
-<cdparam x="309" y="358" />
-<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="1442" >
+<cdparam x="427" y="364" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="427" y="364" id="1430" />
+<P2  x="427" y="402" id="1427" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1443" >
+<cdparam x="622" y="325" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to stop state" value="null" />
+<P1  x="622" y="325" id="1433" />
+<P2  x="622" y="360" id="1435" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1444" >
+<cdparam x="524" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from notified event to choice" value="null" />
+<P1  x="526" y="182" id="1438" />
+<P2  x="524" y="212" id="1420" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1445" >
+<cdparam x="564" y="237" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="564" y="237" id="1422" />
+<P2  x="622" y="295" id="1432" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1001" id="1447" >
+<cdparam x="430" y="408" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Memory0" value="name" />
-<TGConnectingPoint num="0" id="1734" />
-<TGConnectingPoint num="1" id="1735" />
-<TGConnectingPoint num="2" id="1736" />
-<TGConnectingPoint num="3" id="1737" />
-<TGConnectingPoint num="4" id="1738" />
-<TGConnectingPoint num="5" id="1739" />
-<TGConnectingPoint num="6" id="1740" />
-<TGConnectingPoint num="7" id="1741" />
-<TGConnectingPoint num="8" id="1742" />
-<TGConnectingPoint num="9" id="1743" />
-<TGConnectingPoint num="10" id="1744" />
-<TGConnectingPoint num="11" id="1745" />
-<TGConnectingPoint num="12" id="1746" />
-<TGConnectingPoint num="13" id="1747" />
-<TGConnectingPoint num="14" id="1748" />
-<TGConnectingPoint num="15" id="1749" />
-<TGConnectingPoint num="16" id="1750" />
-<TGConnectingPoint num="17" id="1751" />
-<TGConnectingPoint num="18" id="1752" />
-<TGConnectingPoint num="19" id="1753" />
-<TGConnectingPoint num="20" id="1754" />
-<TGConnectingPoint num="21" id="1755" />
-<TGConnectingPoint num="22" id="1756" />
-<TGConnectingPoint num="23" id="1757" />
-<extraparam>
-<info stereotype="MEMORY" nodeName="Memory0" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1446" />
 </COMPONENT>
 
-<COMPONENT type="1102" id="1783" >
-<cdparam x="278" y="269" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="1450" >
+<cdparam x="418" y="364" />
+<sizeparam width="44" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Bus0" value="name" />
-<TGConnectingPoint num="0" id="1759" />
-<TGConnectingPoint num="1" id="1760" />
-<TGConnectingPoint num="2" id="1761" />
-<TGConnectingPoint num="3" id="1762" />
-<TGConnectingPoint num="4" id="1763" />
-<TGConnectingPoint num="5" id="1764" />
-<TGConnectingPoint num="6" id="1765" />
-<TGConnectingPoint num="7" id="1766" />
-<TGConnectingPoint num="8" id="1767" />
-<TGConnectingPoint num="9" id="1768" />
-<TGConnectingPoint num="10" id="1769" />
-<TGConnectingPoint num="11" id="1770" />
-<TGConnectingPoint num="12" id="1771" />
-<TGConnectingPoint num="13" id="1772" />
-<TGConnectingPoint num="14" id="1773" />
-<TGConnectingPoint num="15" id="1774" />
-<TGConnectingPoint num="16" id="1775" />
-<TGConnectingPoint num="17" id="1776" />
-<TGConnectingPoint num="18" id="1777" />
-<TGConnectingPoint num="19" id="1778" />
-<TGConnectingPoint num="20" id="1779" />
-<TGConnectingPoint num="21" id="1780" />
-<TGConnectingPoint num="22" id="1781" />
-<TGConnectingPoint num="23" id="1782" />
+<infoparam name="wait event" value="end() " />
+<TGConnectingPoint num="0" id="1448" />
+<TGConnectingPoint num="1" id="1449" />
 <extraparam>
-<info stereotype="BUS-RR" nodeName="Bus0" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="5"  privacy="0"  referenceAttack="ReadDataFromBus" />
+<Data eventName="end" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1100" id="1817" >
-<cdparam x="574" y="227" />
-<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="1453" >
+<cdparam x="238" y="201" />
+<sizeparam width="129" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU2" value="name" />
-<TGConnectingPoint num="0" id="1793" />
-<TGConnectingPoint num="1" id="1794" />
-<TGConnectingPoint num="2" id="1795" />
-<TGConnectingPoint num="3" id="1796" />
-<TGConnectingPoint num="4" id="1797" />
-<TGConnectingPoint num="5" id="1798" />
-<TGConnectingPoint num="6" id="1799" />
-<TGConnectingPoint num="7" id="1800" />
-<TGConnectingPoint num="8" id="1801" />
-<TGConnectingPoint num="9" id="1802" />
-<TGConnectingPoint num="10" id="1803" />
-<TGConnectingPoint num="11" id="1804" />
-<TGConnectingPoint num="12" id="1805" />
-<TGConnectingPoint num="13" id="1806" />
-<TGConnectingPoint num="14" id="1807" />
-<TGConnectingPoint num="15" id="1808" />
-<TGConnectingPoint num="16" id="1809" />
-<TGConnectingPoint num="17" id="1810" />
-<TGConnectingPoint num="18" id="1811" />
-<TGConnectingPoint num="19" id="1812" />
-<TGConnectingPoint num="20" id="1813" />
-<TGConnectingPoint num="21" id="1814" />
-<TGConnectingPoint num="22" id="1815" />
-<TGConnectingPoint num="23" id="1816" />
+<infoparam name="wait event" value="connectionOpened() " />
+<TGConnectingPoint num="0" id="1451" />
+<TGConnectingPoint num="1" id="1452" />
 <extraparam>
-<info stereotype="CPURR" nodeName="CPU2" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="4" MECType="0" encryption="0"/>
+<Data eventName="connectionOpened" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="1792" >
-<father id="1817" num="0" />
-<cdparam x="604" y="279" />
-<sizeparam width="109" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1000" id="1455" >
+<cdparam x="159" y="66" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="65" minY="0" maxY="95" />
-<infoparam name="TGComponent" value="AppC::Timer" />
-<TGConnectingPoint num="0" id="1784" />
-<TGConnectingPoint num="1" id="1785" />
-<TGConnectingPoint num="2" id="1786" />
-<TGConnectingPoint num="3" id="1787" />
-<TGConnectingPoint num="4" id="1788" />
-<TGConnectingPoint num="5" id="1789" />
-<TGConnectingPoint num="6" id="1790" />
-<TGConnectingPoint num="7" id="1791" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1454" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="1458" >
+<cdparam x="141" y="129" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="reset() " />
+<TGConnectingPoint num="0" id="1456" />
+<TGConnectingPoint num="1" id="1457" />
 <extraparam>
-<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Data eventName="reset" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<COMPONENT type="1100" id="1851" >
-<cdparam x="56" y="231" />
-<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1461" >
+<cdparam x="113" y="182" />
+<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU1" value="name" />
-<TGConnectingPoint num="0" id="1827" />
-<TGConnectingPoint num="1" id="1828" />
-<TGConnectingPoint num="2" id="1829" />
-<TGConnectingPoint num="3" id="1830" />
-<TGConnectingPoint num="4" id="1831" />
-<TGConnectingPoint num="5" id="1832" />
-<TGConnectingPoint num="6" id="1833" />
-<TGConnectingPoint num="7" id="1834" />
-<TGConnectingPoint num="8" id="1835" />
-<TGConnectingPoint num="9" id="1836" />
-<TGConnectingPoint num="10" id="1837" />
-<TGConnectingPoint num="11" id="1838" />
-<TGConnectingPoint num="12" id="1839" />
-<TGConnectingPoint num="13" id="1840" />
-<TGConnectingPoint num="14" id="1841" />
-<TGConnectingPoint num="15" id="1842" />
-<TGConnectingPoint num="16" id="1843" />
-<TGConnectingPoint num="17" id="1844" />
-<TGConnectingPoint num="18" id="1845" />
-<TGConnectingPoint num="19" id="1846" />
-<TGConnectingPoint num="20" id="1847" />
-<TGConnectingPoint num="21" id="1848" />
-<TGConnectingPoint num="22" id="1849" />
-<TGConnectingPoint num="23" id="1850" />
+<infoparam name="send event" value="answerToReset()" />
+<TGConnectingPoint num="0" id="1459" />
+<TGConnectingPoint num="1" id="1460" />
 <extraparam>
-<info stereotype="CPURR" nodeName="CPU1" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="2" MECType="0" encryption="0"/>
+<Data eventName="answerToReset" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="1826" >
-<father id="1851" num="0" />
-<cdparam x="56" y="276" />
-<sizeparam width="163" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1010" id="1464" >
+<cdparam x="144" y="237" />
+<sizeparam width="44" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="2" minY="0" maxY="86" />
-<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
-<TGConnectingPoint num="0" id="1818" />
-<TGConnectingPoint num="1" id="1819" />
-<TGConnectingPoint num="2" id="1820" />
-<TGConnectingPoint num="3" id="1821" />
-<TGConnectingPoint num="4" id="1822" />
-<TGConnectingPoint num="5" id="1823" />
-<TGConnectingPoint num="6" id="1824" />
-<TGConnectingPoint num="7" id="1825" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="pTS() " />
+<TGConnectingPoint num="0" id="1462" />
+<TGConnectingPoint num="1" id="1463" />
 <extraparam>
-<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Data eventName="pTS" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<COMPONENT type="1100" id="1903" >
-<cdparam x="267" y="59" />
-<sizeparam width="272" height="167" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1467" >
+<cdparam x="124" y="308" />
+<sizeparam width="85" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU0" value="name" />
-<TGConnectingPoint num="0" id="1879" />
-<TGConnectingPoint num="1" id="1880" />
-<TGConnectingPoint num="2" id="1881" />
-<TGConnectingPoint num="3" id="1882" />
-<TGConnectingPoint num="4" id="1883" />
-<TGConnectingPoint num="5" id="1884" />
-<TGConnectingPoint num="6" id="1885" />
-<TGConnectingPoint num="7" id="1886" />
-<TGConnectingPoint num="8" id="1887" />
-<TGConnectingPoint num="9" id="1888" />
-<TGConnectingPoint num="10" id="1889" />
-<TGConnectingPoint num="11" id="1890" />
-<TGConnectingPoint num="12" id="1891" />
-<TGConnectingPoint num="13" id="1892" />
-<TGConnectingPoint num="14" id="1893" />
-<TGConnectingPoint num="15" id="1894" />
-<TGConnectingPoint num="16" id="1895" />
-<TGConnectingPoint num="17" id="1896" />
-<TGConnectingPoint num="18" id="1897" />
-<TGConnectingPoint num="19" id="1898" />
-<TGConnectingPoint num="20" id="1899" />
-<TGConnectingPoint num="21" id="1900" />
-<TGConnectingPoint num="22" id="1901" />
-<TGConnectingPoint num="23" id="1902" />
+<infoparam name="send event" value="pTSConfirm()" />
+<TGConnectingPoint num="0" id="1465" />
+<TGConnectingPoint num="1" id="1466" />
 <extraparam>
-<info stereotype="CPURR" nodeName="CPU0" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/>
+<Data eventName="pTSConfirm" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="1860" >
-<father id="1903" num="0" />
-<cdparam x="277" y="90" />
-<sizeparam width="108" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="301" id="1484" >
+<cdparam x="376" y="98" />
+<sizeparam width="233" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="164" minY="0" maxY="127" />
-<infoparam name="TGComponent" value="AppC::TCPIP" />
-<TGConnectingPoint num="0" id="1852" />
-<TGConnectingPoint num="1" id="1853" />
-<TGConnectingPoint num="2" id="1854" />
-<TGConnectingPoint num="3" id="1855" />
-<TGConnectingPoint num="4" id="1856" />
-<TGConnectingPoint num="5" id="1857" />
-<TGConnectingPoint num="6" id="1858" />
-<TGConnectingPoint num="7" id="1859" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="The first two layers of the OSI model 
+are used to communicate between 
+the smart card and the terminal
+" />
+<TGConnectingPoint num="0" id="1468" />
+<TGConnectingPoint num="1" id="1469" />
+<TGConnectingPoint num="2" id="1470" />
+<TGConnectingPoint num="3" id="1471" />
+<TGConnectingPoint num="4" id="1472" />
+<TGConnectingPoint num="5" id="1473" />
+<TGConnectingPoint num="6" id="1474" />
+<TGConnectingPoint num="7" id="1475" />
+<TGConnectingPoint num="8" id="1476" />
+<TGConnectingPoint num="9" id="1477" />
+<TGConnectingPoint num="10" id="1478" />
+<TGConnectingPoint num="11" id="1479" />
+<TGConnectingPoint num="12" id="1480" />
+<TGConnectingPoint num="13" id="1481" />
+<TGConnectingPoint num="14" id="1482" />
+<TGConnectingPoint num="15" id="1483" />
 <extraparam>
-<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Line value="The first two layers of the OSI model " />
+<Line value="are used to communicate between " />
+<Line value="the smart card and the terminal" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="1869" >
-<father id="1903" num="1" />
-<cdparam x="293" y="165" />
-<sizeparam width="139" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="1487" >
+<cdparam x="254" y="97" />
+<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="133" minY="0" maxY="127" />
-<infoparam name="TGComponent" value="AppC::Application" />
-<TGConnectingPoint num="0" id="1861" />
-<TGConnectingPoint num="1" id="1862" />
-<TGConnectingPoint num="2" id="1863" />
-<TGConnectingPoint num="3" id="1864" />
-<TGConnectingPoint num="4" id="1865" />
-<TGConnectingPoint num="5" id="1866" />
-<TGConnectingPoint num="6" id="1867" />
-<TGConnectingPoint num="7" id="1868" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="start_TCP_IP()" />
+<TGConnectingPoint num="0" id="1485" />
+<TGConnectingPoint num="1" id="1486" />
 <extraparam>
-<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Data requestName="start_TCP_IP" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="1878" >
-<father id="1903" num="2" />
-<cdparam x="392" y="119" />
-<sizeparam width="136" height="37" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="1490" >
+<cdparam x="241" y="148" />
+<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="136" minY="0" maxY="127" />
-<infoparam name="TGComponent" value="AppC::SmartCard" />
-<TGConnectingPoint num="0" id="1870" />
-<TGConnectingPoint num="1" id="1871" />
-<TGConnectingPoint num="2" id="1872" />
-<TGConnectingPoint num="3" id="1873" />
-<TGConnectingPoint num="4" id="1874" />
-<TGConnectingPoint num="5" id="1875" />
-<TGConnectingPoint num="6" id="1876" />
-<TGConnectingPoint num="7" id="1877" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="start_Application()" />
+<TGConnectingPoint num="0" id="1488" />
+<TGConnectingPoint num="1" id="1489" />
+<breakpoint />
 <extraparam>
-<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+<Data requestName="start_Application" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="125" id="1904" >
-<cdparam x="402" y="367" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Memory0 to Bus0" value="{info}" />
-<P1  x="403" y="358" id="1735" />
-<P2  x="403" y="319" id="1765" />
-<AutomaticDrawing  data="true" />
+<COMPONENT type="1001" id="1492" >
+<cdparam x="581" y="550" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1491" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1495" >
+<cdparam x="240" y="471" />
+<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="data_Ready_SC()" />
+<TGConnectingPoint num="0" id="1493" />
+<TGConnectingPoint num="1" id="1494" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<Data eventName="data_Ready_SC" nbOfParams="5" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="1905" >
-<cdparam x="190" y="300" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU1 to Bus0" value="{info}" />
-<P1  x="221" y="294" id="1831" />
-<P2  x="278" y="294" id="1762" />
-<AutomaticDrawing  data="true" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="1497" >
+<cdparam x="283" y="547" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1496" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="1500" >
+<cdparam x="252" y="429" />
+<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="fromTtoP(1) " />
+<TGConnectingPoint num="0" id="1498" />
+<TGConnectingPoint num="1" id="1499" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="1906" >
-<cdparam x="662" y="310" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU2 to Bus0" value="{info}" />
-<P1  x="574" y="294" id="1796" />
-<P2  x="528" y="294" id="1763" />
-<AutomaticDrawing  data="true" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="1503" >
+<cdparam x="268" y="385" />
+<sizeparam width="50" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="send() " />
+<TGConnectingPoint num="0" id="1501" />
+<TGConnectingPoint num="1" id="1502" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<Data eventName="send" nbOfParams="5" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="1907" >
-<cdparam x="388" y="162" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU0 to Bus0" value="{info}" />
-<P1  x="403" y="226" id="1885" />
-<P2  x="403" y="269" id="1760" />
-<AutomaticDrawing  data="true" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="1506" >
+<cdparam x="250" y="513" />
+<sizeparam width="87" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="fromSCtoD(1)" />
+<TGConnectingPoint num="0" id="1504" />
+<TGConnectingPoint num="1" id="1505" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
-</CONNECTOR>
-
-</TMLArchiDiagramPanel>
-
-</Modeling>
+</COMPONENT>
 
+<COMPONENT type="1008" id="1509" >
+<cdparam x="562" y="472" />
+<sizeparam width="59" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="receive()" />
+<TGConnectingPoint num="0" id="1507" />
+<TGConnectingPoint num="1" id="1508" />
+<extraparam>
+<Data eventName="receive" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
 
+<COMPONENT type="1009" id="1512" >
+<cdparam x="546" y="433" />
+<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="fromDtoSC(1) " />
+<TGConnectingPoint num="0" id="1510" />
+<TGConnectingPoint num="1" id="1511" />
+<extraparam>
+<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
 
+<COMPONENT type="1006" id="1515" >
+<cdparam x="552" y="509" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="fromPtoT(1)" />
+<TGConnectingPoint num="0" id="1513" />
+<TGConnectingPoint num="1" id="1514" />
+<extraparam>
+<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
 
-<Modeling type="TML Architecture" nameTab="Mapping2_Sec" >
-<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
-<COMPONENT type="1102" id="1932" >
-<cdparam x="17" y="403" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="1518" >
+<cdparam x="536" y="390" />
+<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="SecureBus1" value="name" />
-<TGConnectingPoint num="0" id="1908" />
-<TGConnectingPoint num="1" id="1909" />
-<TGConnectingPoint num="2" id="1910" />
-<TGConnectingPoint num="3" id="1911" />
-<TGConnectingPoint num="4" id="1912" />
-<TGConnectingPoint num="5" id="1913" />
-<TGConnectingPoint num="6" id="1914" />
-<TGConnectingPoint num="7" id="1915" />
-<TGConnectingPoint num="8" id="1916" />
-<TGConnectingPoint num="9" id="1917" />
-<TGConnectingPoint num="10" id="1918" />
-<TGConnectingPoint num="11" id="1919" />
-<TGConnectingPoint num="12" id="1920" />
-<TGConnectingPoint num="13" id="1921" />
-<TGConnectingPoint num="14" id="1922" />
-<TGConnectingPoint num="15" id="1923" />
-<TGConnectingPoint num="16" id="1924" />
-<TGConnectingPoint num="17" id="1925" />
-<TGConnectingPoint num="18" id="1926" />
-<TGConnectingPoint num="19" id="1927" />
-<TGConnectingPoint num="20" id="1928" />
-<TGConnectingPoint num="21" id="1929" />
-<TGConnectingPoint num="22" id="1930" />
-<TGConnectingPoint num="23" id="1931" />
+<infoparam name="wait event" value="data_Ready(t, b) " />
+<TGConnectingPoint num="0" id="1516" />
+<TGConnectingPoint num="1" id="1517" />
+<breakpoint />
 <extraparam>
-<info stereotype="BUS-RR" nodeName="SecureBus1" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
+<Data eventName="data_Ready" nbOfParams="5" />
+<Param index="0" value="t" />
+<Param index="1" value="b" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1105" id="1957" >
-<cdparam x="55" y="511" />
-<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1014" id="1522" >
+<cdparam x="236" y="261" />
+<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="secureMem1" value="name" />
-<TGConnectingPoint num="0" id="1933" />
-<TGConnectingPoint num="1" id="1934" />
-<TGConnectingPoint num="2" id="1935" />
-<TGConnectingPoint num="3" id="1936" />
-<TGConnectingPoint num="4" id="1937" />
-<TGConnectingPoint num="5" id="1938" />
-<TGConnectingPoint num="6" id="1939" />
-<TGConnectingPoint num="7" id="1940" />
-<TGConnectingPoint num="8" id="1941" />
-<TGConnectingPoint num="9" id="1942" />
-<TGConnectingPoint num="10" id="1943" />
-<TGConnectingPoint num="11" id="1944" />
-<TGConnectingPoint num="12" id="1945" />
-<TGConnectingPoint num="13" id="1946" />
-<TGConnectingPoint num="14" id="1947" />
-<TGConnectingPoint num="15" id="1948" />
-<TGConnectingPoint num="16" id="1949" />
-<TGConnectingPoint num="17" id="1950" />
-<TGConnectingPoint num="18" id="1951" />
-<TGConnectingPoint num="19" id="1952" />
-<TGConnectingPoint num="20" id="1953" />
-<TGConnectingPoint num="21" id="1954" />
-<TGConnectingPoint num="22" id="1955" />
-<TGConnectingPoint num="23" id="1956" />
+<infoparam name="for loop" value="for(j=0;x==0;j = j)" />
+<TGConnectingPoint num="0" id="1519" />
+<TGConnectingPoint num="1" id="1520" />
+<TGConnectingPoint num="2" id="1521" />
 <extraparam>
-<info stereotype="MEMORY" nodeName="secureMem1" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+<Data init="j=0" condition="x==0" increment="j = j" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1105" id="1982" >
-<cdparam x="309" y="358" />
-<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1524" >
+<cdparam x="275" y="309" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Memory0" value="name" />
-<TGConnectingPoint num="0" id="1958" />
-<TGConnectingPoint num="1" id="1959" />
-<TGConnectingPoint num="2" id="1960" />
-<TGConnectingPoint num="3" id="1961" />
-<TGConnectingPoint num="4" id="1962" />
-<TGConnectingPoint num="5" id="1963" />
-<TGConnectingPoint num="6" id="1964" />
-<TGConnectingPoint num="7" id="1965" />
-<TGConnectingPoint num="8" id="1966" />
-<TGConnectingPoint num="9" id="1967" />
-<TGConnectingPoint num="10" id="1968" />
-<TGConnectingPoint num="11" id="1969" />
-<TGConnectingPoint num="12" id="1970" />
-<TGConnectingPoint num="13" id="1971" />
-<TGConnectingPoint num="14" id="1972" />
-<TGConnectingPoint num="15" id="1973" />
-<TGConnectingPoint num="16" id="1974" />
-<TGConnectingPoint num="17" id="1975" />
-<TGConnectingPoint num="18" id="1976" />
-<TGConnectingPoint num="19" id="1977" />
-<TGConnectingPoint num="20" id="1978" />
-<TGConnectingPoint num="21" id="1979" />
-<TGConnectingPoint num="22" id="1980" />
-<TGConnectingPoint num="23" id="1981" />
-<extraparam>
-<info stereotype="MEMORY" nodeName="Memory0" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1523" />
 </COMPONENT>
 
-<COMPONENT type="1102" id="2007" >
-<cdparam x="278" y="269" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1018" id="1535" >
+<cdparam x="424" y="285" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Bus0" value="name" />
-<TGConnectingPoint num="0" id="1983" />
-<TGConnectingPoint num="1" id="1984" />
-<TGConnectingPoint num="2" id="1985" />
-<TGConnectingPoint num="3" id="1986" />
-<TGConnectingPoint num="4" id="1987" />
-<TGConnectingPoint num="5" id="1988" />
-<TGConnectingPoint num="6" id="1989" />
-<TGConnectingPoint num="7" id="1990" />
-<TGConnectingPoint num="8" id="1991" />
-<TGConnectingPoint num="9" id="1992" />
-<TGConnectingPoint num="10" id="1993" />
-<TGConnectingPoint num="11" id="1994" />
-<TGConnectingPoint num="12" id="1995" />
-<TGConnectingPoint num="13" id="1996" />
-<TGConnectingPoint num="14" id="1997" />
-<TGConnectingPoint num="15" id="1998" />
-<TGConnectingPoint num="16" id="1999" />
-<TGConnectingPoint num="17" id="2000" />
-<TGConnectingPoint num="18" id="2001" />
-<TGConnectingPoint num="19" id="2002" />
-<TGConnectingPoint num="20" id="2003" />
-<TGConnectingPoint num="21" id="2004" />
-<TGConnectingPoint num="22" id="2005" />
-<TGConnectingPoint num="23" id="2006" />
-<extraparam>
-<info stereotype="BUS-RR" nodeName="Bus0" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="5"  privacy="0"  referenceAttack="ReadDataFromBus" />
-</extraparam>
+<infoparam name="select" value="null" />
+<TGConnectingPoint num="0" id="1525" />
+<TGConnectingPoint num="1" id="1526" />
+<TGConnectingPoint num="2" id="1527" />
+<TGConnectingPoint num="3" id="1528" />
+<TGConnectingPoint num="4" id="1529" />
+<TGConnectingPoint num="5" id="1530" />
+<TGConnectingPoint num="6" id="1531" />
+<TGConnectingPoint num="7" id="1532" />
+<TGConnectingPoint num="8" id="1533" />
+<TGConnectingPoint num="9" id="1534" />
 </COMPONENT>
 
-<COMPONENT type="1100" id="2041" >
-<cdparam x="574" y="227" />
-<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU2" value="name" />
-<TGConnectingPoint num="0" id="2017" />
-<TGConnectingPoint num="1" id="2018" />
-<TGConnectingPoint num="2" id="2019" />
-<TGConnectingPoint num="3" id="2020" />
-<TGConnectingPoint num="4" id="2021" />
-<TGConnectingPoint num="5" id="2022" />
-<TGConnectingPoint num="6" id="2023" />
-<TGConnectingPoint num="7" id="2024" />
-<TGConnectingPoint num="8" id="2025" />
-<TGConnectingPoint num="9" id="2026" />
-<TGConnectingPoint num="10" id="2027" />
-<TGConnectingPoint num="11" id="2028" />
-<TGConnectingPoint num="12" id="2029" />
-<TGConnectingPoint num="13" id="2030" />
-<TGConnectingPoint num="14" id="2031" />
-<TGConnectingPoint num="15" id="2032" />
-<TGConnectingPoint num="16" id="2033" />
-<TGConnectingPoint num="17" id="2034" />
-<TGConnectingPoint num="18" id="2035" />
-<TGConnectingPoint num="19" id="2036" />
-<TGConnectingPoint num="20" id="2037" />
-<TGConnectingPoint num="21" id="2038" />
-<TGConnectingPoint num="22" id="2039" />
-<TGConnectingPoint num="23" id="2040" />
-<extraparam>
-<info stereotype="CPURR" nodeName="CPU2" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="4" MECType="0" encryption="0"/>
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="1101" id="2016" >
-<father id="2041" num="0" />
-<cdparam x="604" y="279" />
-<sizeparam width="109" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="1536" >
+<cdparam x="302" y="227" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="302" y="226" id="1452" />
+<P2  x="298" y="256" id="1519" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1541" >
+<cdparam x="111" y="331" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to send request" value="null" />
+<P1  x="166" y="333" id="1466" />
+<P2  x="298" y="92" id="1485" />
+<Point x="166" y="353" />
+<Point x="225" y="353" />
+<Point x="225" y="72" />
+<Point x="278" y="72" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="1537" >
+<father id="1541" num="0" />
+<cdparam x="166" y="353" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="65" minY="0" maxY="95" />
-<infoparam name="TGComponent" value="AppC::Timer" />
-<TGConnectingPoint num="0" id="2008" />
-<TGConnectingPoint num="1" id="2009" />
-<TGConnectingPoint num="2" id="2010" />
-<TGConnectingPoint num="3" id="2011" />
-<TGConnectingPoint num="4" id="2012" />
-<TGConnectingPoint num="5" id="2013" />
-<TGConnectingPoint num="6" id="2014" />
-<TGConnectingPoint num="7" id="2015" />
-<extraparam>
-<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
-
-<COMPONENT type="1100" id="2075" >
-<cdparam x="56" y="231" />
-<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU1" value="name" />
-<TGConnectingPoint num="0" id="2051" />
-<TGConnectingPoint num="1" id="2052" />
-<TGConnectingPoint num="2" id="2053" />
-<TGConnectingPoint num="3" id="2054" />
-<TGConnectingPoint num="4" id="2055" />
-<TGConnectingPoint num="5" id="2056" />
-<TGConnectingPoint num="6" id="2057" />
-<TGConnectingPoint num="7" id="2058" />
-<TGConnectingPoint num="8" id="2059" />
-<TGConnectingPoint num="9" id="2060" />
-<TGConnectingPoint num="10" id="2061" />
-<TGConnectingPoint num="11" id="2062" />
-<TGConnectingPoint num="12" id="2063" />
-<TGConnectingPoint num="13" id="2064" />
-<TGConnectingPoint num="14" id="2065" />
-<TGConnectingPoint num="15" id="2066" />
-<TGConnectingPoint num="16" id="2067" />
-<TGConnectingPoint num="17" id="2068" />
-<TGConnectingPoint num="18" id="2069" />
-<TGConnectingPoint num="19" id="2070" />
-<TGConnectingPoint num="20" id="2071" />
-<TGConnectingPoint num="21" id="2072" />
-<TGConnectingPoint num="22" id="2073" />
-<TGConnectingPoint num="23" id="2074" />
-<extraparam>
-<info stereotype="CPURR" nodeName="CPU1" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="2" MECType="0" encryption="0"/>
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="1101" id="2050" >
-<father id="2075" num="0" />
-<cdparam x="49" y="276" />
-<sizeparam width="172" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="1538" >
+<father id="1541" num="1" />
+<cdparam x="225" y="353" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="-7" minY="0" maxY="86" />
-<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
-<TGConnectingPoint num="0" id="2042" />
-<TGConnectingPoint num="1" id="2043" />
-<TGConnectingPoint num="2" id="2044" />
-<TGConnectingPoint num="3" id="2045" />
-<TGConnectingPoint num="4" id="2046" />
-<TGConnectingPoint num="5" id="2047" />
-<TGConnectingPoint num="6" id="2048" />
-<TGConnectingPoint num="7" id="2049" />
-<extraparam>
-<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
-
-<COMPONENT type="1100" id="2127" >
-<cdparam x="267" y="59" />
-<sizeparam width="272" height="167" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU0" value="name" />
-<TGConnectingPoint num="0" id="2103" />
-<TGConnectingPoint num="1" id="2104" />
-<TGConnectingPoint num="2" id="2105" />
-<TGConnectingPoint num="3" id="2106" />
-<TGConnectingPoint num="4" id="2107" />
-<TGConnectingPoint num="5" id="2108" />
-<TGConnectingPoint num="6" id="2109" />
-<TGConnectingPoint num="7" id="2110" />
-<TGConnectingPoint num="8" id="2111" />
-<TGConnectingPoint num="9" id="2112" />
-<TGConnectingPoint num="10" id="2113" />
-<TGConnectingPoint num="11" id="2114" />
-<TGConnectingPoint num="12" id="2115" />
-<TGConnectingPoint num="13" id="2116" />
-<TGConnectingPoint num="14" id="2117" />
-<TGConnectingPoint num="15" id="2118" />
-<TGConnectingPoint num="16" id="2119" />
-<TGConnectingPoint num="17" id="2120" />
-<TGConnectingPoint num="18" id="2121" />
-<TGConnectingPoint num="19" id="2122" />
-<TGConnectingPoint num="20" id="2123" />
-<TGConnectingPoint num="21" id="2124" />
-<TGConnectingPoint num="22" id="2125" />
-<TGConnectingPoint num="23" id="2126" />
-<extraparam>
-<info stereotype="CPURR" nodeName="CPU0" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/>
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="1101" id="2084" >
-<father id="2127" num="0" />
-<cdparam x="392" y="119" />
-<sizeparam width="141" height="37" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="1539" >
+<father id="1541" num="2" />
+<cdparam x="225" y="72" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="131" minY="0" maxY="130" />
-<infoparam name="TGComponent" value="AppC::SmartCard" />
-<TGConnectingPoint num="0" id="2076" />
-<TGConnectingPoint num="1" id="2077" />
-<TGConnectingPoint num="2" id="2078" />
-<TGConnectingPoint num="3" id="2079" />
-<TGConnectingPoint num="4" id="2080" />
-<TGConnectingPoint num="5" id="2081" />
-<TGConnectingPoint num="6" id="2082" />
-<TGConnectingPoint num="7" id="2083" />
-<extraparam>
-<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="2093" >
-<father id="2127" num="1" />
-<cdparam x="293" y="165" />
-<sizeparam width="144" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="1540" >
+<father id="1541" num="3" />
+<cdparam x="278" y="72" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="128" minY="0" maxY="127" />
-<infoparam name="TGComponent" value="AppC::Application" />
-<TGConnectingPoint num="0" id="2085" />
-<TGConnectingPoint num="1" id="2086" />
-<TGConnectingPoint num="2" id="2087" />
-<TGConnectingPoint num="3" id="2088" />
-<TGConnectingPoint num="4" id="2089" />
-<TGConnectingPoint num="5" id="2090" />
-<TGConnectingPoint num="6" id="2091" />
-<TGConnectingPoint num="7" id="2092" />
-<extraparam>
-<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="2102" >
-<father id="2127" num="2" />
-<cdparam x="277" y="90" />
-<sizeparam width="109" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="163" minY="0" maxY="127" />
-<infoparam name="TGComponent" value="AppC::TCPIP" />
-<TGConnectingPoint num="0" id="2094" />
-<TGConnectingPoint num="1" id="2095" />
-<TGConnectingPoint num="2" id="2096" />
-<TGConnectingPoint num="3" id="2097" />
-<TGConnectingPoint num="4" id="2098" />
-<TGConnectingPoint num="5" id="2099" />
-<TGConnectingPoint num="6" id="2100" />
-<TGConnectingPoint num="7" id="2101" />
-<extraparam>
-<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1102" id="2152" >
-<cdparam x="630" y="38" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="SecureBus2" value="name" />
-<TGConnectingPoint num="0" id="2128" />
-<TGConnectingPoint num="1" id="2129" />
-<TGConnectingPoint num="2" id="2130" />
-<TGConnectingPoint num="3" id="2131" />
-<TGConnectingPoint num="4" id="2132" />
-<TGConnectingPoint num="5" id="2133" />
-<TGConnectingPoint num="6" id="2134" />
-<TGConnectingPoint num="7" id="2135" />
-<TGConnectingPoint num="8" id="2136" />
-<TGConnectingPoint num="9" id="2137" />
-<TGConnectingPoint num="10" id="2138" />
-<TGConnectingPoint num="11" id="2139" />
-<TGConnectingPoint num="12" id="2140" />
-<TGConnectingPoint num="13" id="2141" />
-<TGConnectingPoint num="14" id="2142" />
-<TGConnectingPoint num="15" id="2143" />
-<TGConnectingPoint num="16" id="2144" />
-<TGConnectingPoint num="17" id="2145" />
-<TGConnectingPoint num="18" id="2146" />
-<TGConnectingPoint num="19" id="2147" />
-<TGConnectingPoint num="20" id="2148" />
-<TGConnectingPoint num="21" id="2149" />
-<TGConnectingPoint num="22" id="2150" />
-<TGConnectingPoint num="23" id="2151" />
-<extraparam>
-<info stereotype="BUS-RR" nodeName="SecureBus2" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1105" id="2177" >
-<cdparam x="780" y="123" />
-<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="secureMem2" value="name" />
-<TGConnectingPoint num="0" id="2153" />
-<TGConnectingPoint num="1" id="2154" />
-<TGConnectingPoint num="2" id="2155" />
-<TGConnectingPoint num="3" id="2156" />
-<TGConnectingPoint num="4" id="2157" />
-<TGConnectingPoint num="5" id="2158" />
-<TGConnectingPoint num="6" id="2159" />
-<TGConnectingPoint num="7" id="2160" />
-<TGConnectingPoint num="8" id="2161" />
-<TGConnectingPoint num="9" id="2162" />
-<TGConnectingPoint num="10" id="2163" />
-<TGConnectingPoint num="11" id="2164" />
-<TGConnectingPoint num="12" id="2165" />
-<TGConnectingPoint num="13" id="2166" />
-<TGConnectingPoint num="14" id="2167" />
-<TGConnectingPoint num="15" id="2168" />
-<TGConnectingPoint num="16" id="2169" />
-<TGConnectingPoint num="17" id="2170" />
-<TGConnectingPoint num="18" id="2171" />
-<TGConnectingPoint num="19" id="2172" />
-<TGConnectingPoint num="20" id="2173" />
-<TGConnectingPoint num="21" id="2174" />
-<TGConnectingPoint num="22" id="2175" />
-<TGConnectingPoint num="23" id="2176" />
-<extraparam>
-<info stereotype="MEMORY" nodeName="secureMem2" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
-</extraparam>
-</COMPONENT>
-
-<CONNECTOR type="125" id="2178" >
-<cdparam x="539" y="100" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="539" y="100" id="2114" />
-<P2  x="630" y="63" id="2131" />
+<CONNECTOR type="115" id="1542" >
+<cdparam x="166" y="64" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to wait event" value="null" />
+<P1  x="166" y="86" id="1454" />
+<P2  x="166" y="124" id="1456" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="2179" >
-<cdparam x="143" y="511" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="143" y="511" id="1934" />
-<P2  x="142" y="453" id="1914" />
+<CONNECTOR type="115" id="1543" >
+<cdparam x="166" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="166" y="154" id="1457" />
+<P2  x="166" y="177" id="1459" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="2180" >
-<cdparam x="138" y="357" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="138" y="357" id="2057" />
-<P2  x="142" y="403" id="1909" />
+<CONNECTOR type="115" id="1544" >
+<cdparam x="312" y="133" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to send request" value="null" />
+<P1  x="298" y="122" id="1486" />
+<P2  x="298" y="143" id="1488" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="2181" >
-<cdparam x="402" y="367" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Memory0 to Bus0" value="{info}" />
-<P1  x="403" y="358" id="1959" />
-<P2  x="403" y="319" id="1989" />
+<CONNECTOR type="115" id="1545" >
+<cdparam x="286" y="421" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="293" y="410" id="1502" />
+<P2  x="293" y="424" id="1498" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="2182" >
-<cdparam x="190" y="300" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU1 to Bus0" value="{info}" />
-<P1  x="221" y="294" id="2055" />
-<P2  x="278" y="294" id="1986" />
+<CONNECTOR type="115" id="1546" >
+<cdparam x="286" y="486" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to send event" value="null" />
+<P1  x="293" y="454" id="1499" />
+<P2  x="293" y="466" id="1493" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="2183" >
-<cdparam x="662" y="310" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU2 to Bus0" value="{info}" />
-<P1  x="574" y="294" id="2020" />
-<P2  x="528" y="294" id="1987" />
+<CONNECTOR type="115" id="1547" >
+<cdparam x="286" y="538" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="293" y="496" id="1494" />
+<P2  x="293" y="508" id="1504" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="2184" >
-<cdparam x="388" y="162" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU0 to Bus0" value="{info}" />
-<P1  x="403" y="226" id="2109" />
-<P2  x="403" y="269" id="1984" />
+<CONNECTOR type="115" id="1548" >
+<cdparam x="286" y="594" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="293" y="538" id="1505" />
+<P2  x="293" y="542" id="1496" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-<CONNECTOR type="125" id="2185" >
-<cdparam x="812" y="190" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="868" y="123" id="2154" />
-<P2  x="755" y="88" id="2134" />
+<CONNECTOR type="115" id="1549" >
+<cdparam x="607" y="480" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to send event" value="null" />
+<P1  x="591" y="458" id="1511" />
+<P2  x="591" y="467" id="1507" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
 </CONNECTOR>
-
-</TMLArchiDiagramPanel>
-
-</Modeling>
-
-
-
-
-<Modeling type="AVATAR Design" nameTab="BasicSecurityProtocol" >
-<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
-<MainCode value="void __user_init() {"/>
-<MainCode value="}"/>
-<Optimized value="true" />
-<Validated value="" />
-<Ignored value="" />
-
-<CONNECTOR type="5002" id="2191" >
-<cdparam x="568" y="220" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Block0 to Block0" value="" />
-<TGConnectingPoint num="0" id="2188" />
-<TGConnectingPoint num="1" id="2189" />
-<TGConnectingPoint num="2" id="2190" />
-<P1  x="459" y="199" id="2288" />
-<P2  x="459" y="254" id="2281" />
-<Point x="490" y="199" />
-<Point x="490" y="254" />
+<CONNECTOR type="115" id="1550" >
+<cdparam x="606" y="524" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="591" y="497" id="1508" />
+<P2  x="591" y="504" id="1513" />
 <AutomaticDrawing  data="true" />
-<extraparam>
-<iso value="in chin(Message msg)" />
-<osd value="out chout(Message msg)" />
-<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" />
-</extraparam>
-</CONNECTOR><SUBCOMPONENT type="-1" id="2186" >
-<father id="2191" num="0" />
-<cdparam x="490" y="199" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="2187" >
-<father id="2191" num="1" />
-<cdparam x="490" y="254" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1551" >
+<cdparam x="609" y="427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="591" y="415" id="1517" />
+<P2  x="591" y="428" id="1510" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1552" >
+<cdparam x="606" y="586" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="591" y="534" id="1514" />
+<P2  x="591" y="545" id="1491" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1553" >
+<cdparam x="298" y="173" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to for loop" value="null" />
+<P1  x="298" y="173" id="1489" />
+<P2  x="302" y="196" id="1451" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1554" >
+<cdparam x="328" y="291" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to stop state" value="null" />
+<P1  x="298" y="286" id="1521" />
+<P2  x="285" y="304" id="1523" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1555" >
+<cdparam x="385" y="404" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from select to wait event" value="null" />
+<P1  x="399" y="300" id="1526" />
+<P2  x="293" y="380" id="1501" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1556" >
+<cdparam x="533" y="462" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from select to wait event" value="null" />
+<P1  x="479" y="300" id="1527" />
+<P2  x="591" y="385" id="1516" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1557" >
+<cdparam x="391" y="341" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to select" value="null" />
+<P1  x="361" y="275" id="1520" />
+<P2  x="439" y="275" id="1525" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1558" >
+<cdparam x="164" y="262" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="166" y="262" id="1463" />
+<P2  x="166" y="303" id="1465" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1559" >
+<cdparam x="166" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to wait event" value="null" />
+<P1  x="166" y="207" id="1460" />
+<P2  x="166" y="232" id="1462" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1560" >
+<cdparam x="439" y="340" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="439" y="340" id="1528" />
+<P2  x="440" y="359" id="1448" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1561" >
+<cdparam x="440" y="389" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="440" y="389" id="1449" />
+<P2  x="440" y="403" id="1446" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="Application" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1013" id="1565" >
+<cdparam x="505" y="259" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="point " value="null" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="1563" />
+<TGConnectingPoint num="1" id="1564" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1562" >
+<father id="1565" num="0" />
+<cdparam x="520" y="279" />
+<sizeparam width="16" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="10" />
 </SUBCOMPONENT>
 
-<COMPONENT type="302" id="2208" >
-<cdparam x="519" y="154" />
-<sizeparam width="520" height="97" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="1568" >
+<cdparam x="479" y="129" />
+<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge InterfaceDevice.sk SmartCard.sk
-
-#Confidentiality InterfaceDevice.secretData
-#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m
-" />
-<TGConnectingPoint num="0" id="2192" />
-<TGConnectingPoint num="1" id="2193" />
-<TGConnectingPoint num="2" id="2194" />
-<TGConnectingPoint num="3" id="2195" />
-<TGConnectingPoint num="4" id="2196" />
-<TGConnectingPoint num="5" id="2197" />
-<TGConnectingPoint num="6" id="2198" />
-<TGConnectingPoint num="7" id="2199" />
-<TGConnectingPoint num="8" id="2200" />
-<TGConnectingPoint num="9" id="2201" />
-<TGConnectingPoint num="10" id="2202" />
-<TGConnectingPoint num="11" id="2203" />
-<TGConnectingPoint num="12" id="2204" />
-<TGConnectingPoint num="13" id="2205" />
-<TGConnectingPoint num="14" id="2206" />
-<TGConnectingPoint num="15" id="2207" />
+<infoparam name="wait event" value="opened() " />
+<TGConnectingPoint num="0" id="1566" />
+<TGConnectingPoint num="1" id="1567" />
 <extraparam>
-<Line value="#InitialSystemKnowledge InterfaceDevice.sk SmartCard.sk" />
-<Line value="" />
-<Line value="#Confidentiality InterfaceDevice.secretData" />
-<Line value="#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m" />
+<Data eventName="opened" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="2217" >
-<cdparam x="260" y="373" />
-<sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1571" >
+<cdparam x="449" y="192" />
+<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="DataType0" value="Message" />
-<TGConnectingPoint num="0" id="2209" />
-<TGConnectingPoint num="1" id="2210" />
-<TGConnectingPoint num="2" id="2211" />
-<TGConnectingPoint num="3" id="2212" />
-<TGConnectingPoint num="4" id="2213" />
-<TGConnectingPoint num="5" id="2214" />
-<TGConnectingPoint num="6" id="2215" />
-<TGConnectingPoint num="7" id="2216" />
+<infoparam name="send event" value="connectionOpened()" />
+<TGConnectingPoint num="0" id="1569" />
+<TGConnectingPoint num="1" id="1570" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Data eventName="connectionOpened" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="2226" >
-<cdparam x="68" y="372" />
-<sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="1579" >
+<cdparam x="495" y="514" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="DataType0" value="Key" />
-<TGConnectingPoint num="0" id="2218" />
-<TGConnectingPoint num="1" id="2219" />
-<TGConnectingPoint num="2" id="2220" />
-<TGConnectingPoint num="3" id="2221" />
-<TGConnectingPoint num="4" id="2222" />
-<TGConnectingPoint num="5" id="2223" />
-<TGConnectingPoint num="6" id="2224" />
-<TGConnectingPoint num="7" id="2225" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="1575" />
+<TGConnectingPoint num="1" id="1576" />
+<TGConnectingPoint num="2" id="1577" />
+<TGConnectingPoint num="3" id="1578" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="1572" >
+<father id="1579" num="0" />
+<cdparam x="470" y="524" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1573" >
+<father id="1579" num="1" />
+<cdparam x="530" y="524" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="1574" >
+<father id="1579" num="2" />
+<cdparam x="515" y="559" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="1581" >
+<cdparam x="498" y="33" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1580" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="1584" >
+<cdparam x="482" y="71" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="open()" />
+<TGConnectingPoint num="0" id="1582" />
+<TGConnectingPoint num="1" id="1583" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<Data eventName="open" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5000" id="2301" >
-<cdparam x="21" y="145" />
-<sizeparam width="438" height="219" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="1587" >
+<cdparam x="469" y="353" />
+<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Block0" value="System" />
-<TGConnectingPoint num="0" id="2277" />
-<TGConnectingPoint num="1" id="2278" />
-<TGConnectingPoint num="2" id="2279" />
-<TGConnectingPoint num="3" id="2280" />
-<TGConnectingPoint num="4" id="2281" />
-<TGConnectingPoint num="5" id="2282" />
-<TGConnectingPoint num="6" id="2283" />
-<TGConnectingPoint num="7" id="2284" />
-<TGConnectingPoint num="8" id="2285" />
-<TGConnectingPoint num="9" id="2286" />
-<TGConnectingPoint num="10" id="2287" />
-<TGConnectingPoint num="11" id="2288" />
-<TGConnectingPoint num="12" id="2289" />
-<TGConnectingPoint num="13" id="2290" />
-<TGConnectingPoint num="14" id="2291" />
-<TGConnectingPoint num="15" id="2292" />
-<TGConnectingPoint num="16" id="2293" />
-<TGConnectingPoint num="17" id="2294" />
-<TGConnectingPoint num="18" id="2295" />
-<TGConnectingPoint num="19" id="2296" />
-<TGConnectingPoint num="20" id="2297" />
-<TGConnectingPoint num="21" id="2298" />
-<TGConnectingPoint num="22" id="2299" />
-<TGConnectingPoint num="23" id="2300" />
+<infoparam name="write channel" value="fromAtoT(1)" />
+<TGConnectingPoint num="0" id="1585" />
+<TGConnectingPoint num="1" id="1586" />
 <extraparam>
-<CryptoBlock value="false" />
-<Signal value="in chin(Message msg)" attached="true" />
-<Signal value="out chout(Message msg)" attached="true" />
+<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="2251" >
-<father id="2301" num="0" />
-<cdparam x="263" y="233" />
-<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="1008" id="1590" >
+<cdparam x="471" y="399" />
+<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" />
-<infoparam name="Block0" value="SmartCard" />
-<TGConnectingPoint num="0" id="2227" />
-<TGConnectingPoint num="1" id="2228" />
-<TGConnectingPoint num="2" id="2229" />
-<TGConnectingPoint num="3" id="2230" />
-<TGConnectingPoint num="4" id="2231" />
-<TGConnectingPoint num="5" id="2232" />
-<TGConnectingPoint num="6" id="2233" />
-<TGConnectingPoint num="7" id="2234" />
-<TGConnectingPoint num="8" id="2235" />
-<TGConnectingPoint num="9" id="2236" />
-<TGConnectingPoint num="10" id="2237" />
-<TGConnectingPoint num="11" id="2238" />
-<TGConnectingPoint num="12" id="2239" />
-<TGConnectingPoint num="13" id="2240" />
-<TGConnectingPoint num="14" id="2241" />
-<TGConnectingPoint num="15" id="2242" />
-<TGConnectingPoint num="16" id="2243" />
-<TGConnectingPoint num="17" id="2244" />
-<TGConnectingPoint num="18" id="2245" />
-<TGConnectingPoint num="19" id="2246" />
-<TGConnectingPoint num="20" id="2247" />
-<TGConnectingPoint num="21" id="2248" />
-<TGConnectingPoint num="22" id="2249" />
-<TGConnectingPoint num="23" id="2250" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="send_TCP()" />
+<TGConnectingPoint num="0" id="1588" />
+<TGConnectingPoint num="1" id="1589" />
+<accessibility />
 <extraparam>
-<CryptoBlock value="true" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
-<Method value="Message encrypt(Message msg, Key k)" />
-<Method value="Message decrypt(Message msg, Key k)" />
-<Method value="Message sencrypt(Message msg, Key k)" />
-<Method value="Message sdecrypt(Message msg, Key k)" />
-<Method value="Message MAC(Message msg, Key k)" />
-<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
-<Method value="Message concat2(Message msg1, Message msg2)" />
-<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
-<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="get2(Message msg, Message msg1, Message msg2)" />
-<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
-<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="Message aencrypt(Message msg, Key k)" />
-<Method value="Message adecrypt(Message msg, Key k)" />
-<Method value="Key pk(Key k)" />
-<Method value="Message sign(Message msg, Key k)" />
-<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
-<Method value="Message cert(Key k, Message msg)" />
-<Method value="bool verifyCert(Message cert, Key k)" />
-<Method value="Key getpk(Message cert)" />
-<Method value="Key DH(Key pubK, Key privK)" />
-<Method value="Message hash(Message msg)" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="2276" >
-<father id="2301" num="1" />
-<cdparam x="36" y="233" />
-<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" />
-<infoparam name="Block0" value="InterfaceDevice" />
-<TGConnectingPoint num="0" id="2252" />
-<TGConnectingPoint num="1" id="2253" />
-<TGConnectingPoint num="2" id="2254" />
-<TGConnectingPoint num="3" id="2255" />
-<TGConnectingPoint num="4" id="2256" />
-<TGConnectingPoint num="5" id="2257" />
-<TGConnectingPoint num="6" id="2258" />
-<TGConnectingPoint num="7" id="2259" />
-<TGConnectingPoint num="8" id="2260" />
-<TGConnectingPoint num="9" id="2261" />
-<TGConnectingPoint num="10" id="2262" />
-<TGConnectingPoint num="11" id="2263" />
-<TGConnectingPoint num="12" id="2264" />
-<TGConnectingPoint num="13" id="2265" />
-<TGConnectingPoint num="14" id="2266" />
-<TGConnectingPoint num="15" id="2267" />
-<TGConnectingPoint num="16" id="2268" />
-<TGConnectingPoint num="17" id="2269" />
-<TGConnectingPoint num="18" id="2270" />
-<TGConnectingPoint num="19" id="2271" />
-<TGConnectingPoint num="20" id="2272" />
-<TGConnectingPoint num="21" id="2273" />
-<TGConnectingPoint num="22" id="2274" />
-<TGConnectingPoint num="23" id="2275" />
-<extraparam>
-<CryptoBlock value="true" />
-<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Method value="Message encrypt(Message msg, Key k)" />
-<Method value="Message decrypt(Message msg, Key k)" />
-<Method value="Message sencrypt(Message msg, Key k)" />
-<Method value="Message sdecrypt(Message msg, Key k)" />
-<Method value="Message MAC(Message msg, Key k)" />
-<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
-<Method value="Message concat2(Message msg1, Message msg2)" />
-<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
-<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="get2(Message msg, Message msg1, Message msg2)" />
-<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
-<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="Message aencrypt(Message msg, Key k)" />
-<Method value="Message adecrypt(Message msg, Key k)" />
-<Method value="Key pk(Key k)" />
-<Method value="Message sign(Message msg, Key k)" />
-<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
-<Method value="Message cert(Key k, Message msg)" />
-<Method value="bool verifyCert(Message cert, Key k)" />
-<Method value="Key getpk(Message cert)" />
-<Method value="Key DH(Key pubK, Key privK)" />
-<Method value="Message hash(Message msg)" />
+<Data eventName="send_TCP" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
-
-
-</AVATARBlockDiagramPanel>
+</COMPONENT>
 
-<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="5100" id="2303" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1592" >
+<cdparam x="577" y="648" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="2302" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1591" />
 </COMPONENT>
 
-
-</AVATARStateMachineDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="2310" >
-<cdparam x="407" y="310" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="2309" />
-<P1  x="407" y="310" id="2381" />
-<P2  x="416" y="356" id="2340" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2308" >
-<father id="2310" num="0" />
-<cdparam x="449" y="353" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1595" >
+<cdparam x="563" y="589" />
+<sizeparam width="49" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2304" />
-<TGConnectingPoint num="1" id="2305" />
-<TGConnectingPoint num="2" id="2306" />
-<TGConnectingPoint num="3" id="2307" />
+<infoparam name="send event" value="abort()" />
+<TGConnectingPoint num="0" id="1593" />
+<TGConnectingPoint num="1" id="1594" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<Data eventName="abort" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="2317" >
-<cdparam x="492" y="446" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="2316" />
-<P1  x="416" y="406" id="2345" />
-<P2  x="434" y="446" id="2391" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2315" >
-<father id="2317" num="0" />
-<cdparam x="449" y="440" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="1598" >
+<cdparam x="410" y="597" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2311" />
-<TGConnectingPoint num="1" id="2312" />
-<TGConnectingPoint num="2" id="2313" />
-<TGConnectingPoint num="3" id="2314" />
+<infoparam name="send event" value="close()" />
+<TGConnectingPoint num="0" id="1596" />
+<TGConnectingPoint num="1" id="1597" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<Data eventName="close" nbOfParams="5" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="2324" >
-<cdparam x="407" y="251" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to stop state" value="null" />
-<TGConnectingPoint num="0" id="2323" />
-<P1  x="407" y="251" id="2399" />
-<P2  x="407" y="280" id="2380" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2322" >
-<father id="2324" num="0" />
-<cdparam x="407" y="291" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="1600" >
+<cdparam x="423" y="646" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2318" />
-<TGConnectingPoint num="1" id="2319" />
-<TGConnectingPoint num="2" id="2320" />
-<TGConnectingPoint num="3" id="2321" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-</extraparam>
-</SUBCOMPONENT>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="1599" />
+</COMPONENT>
 
-<CONNECTOR type="5102" id="2331" >
-<cdparam x="407" y="132" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="2330" />
-<P1  x="407" y="132" id="2440" />
-<P2  x="407" y="211" id="2394" />
+<CONNECTOR type="115" id="1601" >
+<cdparam x="510" y="294" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="510" y="294" id="1564" />
+<P2  x="509" y="348" id="1585" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2329" >
-<father id="2331" num="0" />
-<cdparam x="414" y="162" />
-<sizeparam width="126" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2325" />
-<TGConnectingPoint num="1" id="2326" />
-<TGConnectingPoint num="2" id="2327" />
-<TGConnectingPoint num="3" id="2328" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="m.data = secretData" />
-<actions value="m1 = sencrypt(m, sk)" />
-</extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2338" >
-<cdparam x="407" y="70" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="2337" />
-<P1  x="407" y="70" id="2475" />
-<P2  x="407" y="92" id="2435" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1602" >
+<cdparam x="508" y="424" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="508" y="424" id="1589" />
+<P2  x="510" y="504" id="1575" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2336" >
-<father id="2338" num="0" />
-<cdparam x="407" y="110" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2332" />
-<TGConnectingPoint num="1" id="2333" />
-<TGConnectingPoint num="2" id="2334" />
-<TGConnectingPoint num="3" id="2335" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-</extraparam>
-</SUBCOMPONENT>
-
-<COMPONENT type="5106" id="2379" >
-<cdparam x="366" y="356" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="State" value="beforeFinish" />
-<TGConnectingPoint num="0" id="2339" />
-<TGConnectingPoint num="1" id="2340" />
-<TGConnectingPoint num="2" id="2341" />
-<TGConnectingPoint num="3" id="2342" />
-<TGConnectingPoint num="4" id="2343" />
-<TGConnectingPoint num="5" id="2344" />
-<TGConnectingPoint num="6" id="2345" />
-<TGConnectingPoint num="7" id="2346" />
-<TGConnectingPoint num="8" id="2347" />
-<TGConnectingPoint num="9" id="2348" />
-<TGConnectingPoint num="10" id="2349" />
-<TGConnectingPoint num="11" id="2350" />
-<TGConnectingPoint num="12" id="2351" />
-<TGConnectingPoint num="13" id="2352" />
-<TGConnectingPoint num="14" id="2353" />
-<TGConnectingPoint num="15" id="2354" />
-<TGConnectingPoint num="16" id="2355" />
-<TGConnectingPoint num="17" id="2356" />
-<TGConnectingPoint num="18" id="2357" />
-<TGConnectingPoint num="19" id="2358" />
-<TGConnectingPoint num="20" id="2359" />
-<TGConnectingPoint num="21" id="2360" />
-<TGConnectingPoint num="22" id="2361" />
-<TGConnectingPoint num="23" id="2362" />
-<TGConnectingPoint num="24" id="2363" />
-<TGConnectingPoint num="25" id="2364" />
-<TGConnectingPoint num="26" id="2365" />
-<TGConnectingPoint num="27" id="2366" />
-<TGConnectingPoint num="28" id="2367" />
-<TGConnectingPoint num="29" id="2368" />
-<TGConnectingPoint num="30" id="2369" />
-<TGConnectingPoint num="31" id="2370" />
-<TGConnectingPoint num="32" id="2371" />
-<TGConnectingPoint num="33" id="2372" />
-<TGConnectingPoint num="34" id="2373" />
-<TGConnectingPoint num="35" id="2374" />
-<TGConnectingPoint num="36" id="2375" />
-<TGConnectingPoint num="37" id="2376" />
-<TGConnectingPoint num="38" id="2377" />
-<TGConnectingPoint num="39" id="2378" />
-<extraparam>
-</extraparam>
-</COMPONENT>
+</CONNECTOR>
+<CONNECTOR type="115" id="1603" >
+<cdparam x="512" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="512" y="154" id="1567" />
+<P2  x="511" y="187" id="1569" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1604" >
+<cdparam x="594" y="221" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="511" y="217" id="1570" />
+<P2  x="510" y="254" id="1563" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1605" >
+<cdparam x="506" y="36" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to send event" value="null" />
+<P1  x="505" y="53" id="1580" />
+<P2  x="505" y="66" id="1582" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1606" >
+<cdparam x="508" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="505" y="96" id="1583" />
+<P2  x="512" y="124" id="1566" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1607" >
+<cdparam x="509" y="397" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="509" y="378" id="1586" />
+<P2  x="508" y="394" id="1588" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1608" >
+<cdparam x="587" y="614" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="587" y="614" id="1594" />
+<P2  x="587" y="643" id="1591" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1609" >
+<cdparam x="471" y="608" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="470" y="529" id="1576" />
+<P2  x="433" y="592" id="1596" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1610" >
+<cdparam x="433" y="622" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="433" y="622" id="1597" />
+<P2  x="433" y="641" id="1599" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="1611" >
+<cdparam x="551" y="608" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="550" y="529" id="1577" />
+<P2  x="587" y="584" id="1593" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
 
-<COMPONENT type="5103" id="2390" >
-<cdparam x="373" y="285" />
-<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="chout(m1)" />
-<TGConnectingPoint num="0" id="2380" />
-<TGConnectingPoint num="1" id="2381" />
-<TGConnectingPoint num="2" id="2382" />
-<TGConnectingPoint num="3" id="2383" />
-<TGConnectingPoint num="4" id="2384" />
-<TGConnectingPoint num="5" id="2385" />
-<TGConnectingPoint num="6" id="2386" />
-<TGConnectingPoint num="7" id="2387" />
-<TGConnectingPoint num="8" id="2388" />
-<TGConnectingPoint num="9" id="2389" />
-</COMPONENT>
+</TMLActivityDiagramPanel>
 
-<COMPONENT type="5101" id="2392" >
-<cdparam x="424" y="451" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="2391" />
-</COMPONENT>
+</Modeling>
 
-<COMPONENT type="5106" id="2433" >
-<cdparam x="336" y="211" />
-<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="sendingMessage" />
-<TGConnectingPoint num="0" id="2393" />
-<TGConnectingPoint num="1" id="2394" />
-<TGConnectingPoint num="2" id="2395" />
-<TGConnectingPoint num="3" id="2396" />
-<TGConnectingPoint num="4" id="2397" />
-<TGConnectingPoint num="5" id="2398" />
-<TGConnectingPoint num="6" id="2399" />
-<TGConnectingPoint num="7" id="2400" />
-<TGConnectingPoint num="8" id="2401" />
-<TGConnectingPoint num="9" id="2402" />
-<TGConnectingPoint num="10" id="2403" />
-<TGConnectingPoint num="11" id="2404" />
-<TGConnectingPoint num="12" id="2405" />
-<TGConnectingPoint num="13" id="2406" />
-<TGConnectingPoint num="14" id="2407" />
-<TGConnectingPoint num="15" id="2408" />
-<TGConnectingPoint num="16" id="2409" />
-<TGConnectingPoint num="17" id="2410" />
-<TGConnectingPoint num="18" id="2411" />
-<TGConnectingPoint num="19" id="2412" />
-<TGConnectingPoint num="20" id="2413" />
-<TGConnectingPoint num="21" id="2414" />
-<TGConnectingPoint num="22" id="2415" />
-<TGConnectingPoint num="23" id="2416" />
-<TGConnectingPoint num="24" id="2417" />
-<TGConnectingPoint num="25" id="2418" />
-<TGConnectingPoint num="26" id="2419" />
-<TGConnectingPoint num="27" id="2420" />
-<TGConnectingPoint num="28" id="2421" />
-<TGConnectingPoint num="29" id="2422" />
-<TGConnectingPoint num="30" id="2423" />
-<TGConnectingPoint num="31" id="2424" />
-<TGConnectingPoint num="32" id="2425" />
-<TGConnectingPoint num="33" id="2426" />
-<TGConnectingPoint num="34" id="2427" />
-<TGConnectingPoint num="35" id="2428" />
-<TGConnectingPoint num="36" id="2429" />
-<TGConnectingPoint num="37" id="2430" />
-<TGConnectingPoint num="38" id="2431" />
-<TGConnectingPoint num="39" id="2432" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="2474" >
-<cdparam x="340" y="92" />
-<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="makingMessage" />
-<TGConnectingPoint num="0" id="2434" />
-<TGConnectingPoint num="1" id="2435" />
-<TGConnectingPoint num="2" id="2436" />
-<TGConnectingPoint num="3" id="2437" />
-<TGConnectingPoint num="4" id="2438" />
-<TGConnectingPoint num="5" id="2439" />
-<TGConnectingPoint num="6" id="2440" />
-<TGConnectingPoint num="7" id="2441" />
-<TGConnectingPoint num="8" id="2442" />
-<TGConnectingPoint num="9" id="2443" />
-<TGConnectingPoint num="10" id="2444" />
-<TGConnectingPoint num="11" id="2445" />
-<TGConnectingPoint num="12" id="2446" />
-<TGConnectingPoint num="13" id="2447" />
-<TGConnectingPoint num="14" id="2448" />
-<TGConnectingPoint num="15" id="2449" />
-<TGConnectingPoint num="16" id="2450" />
-<TGConnectingPoint num="17" id="2451" />
-<TGConnectingPoint num="18" id="2452" />
-<TGConnectingPoint num="19" id="2453" />
-<TGConnectingPoint num="20" id="2454" />
-<TGConnectingPoint num="21" id="2455" />
-<TGConnectingPoint num="22" id="2456" />
-<TGConnectingPoint num="23" id="2457" />
-<TGConnectingPoint num="24" id="2458" />
-<TGConnectingPoint num="25" id="2459" />
-<TGConnectingPoint num="26" id="2460" />
-<TGConnectingPoint num="27" id="2461" />
-<TGConnectingPoint num="28" id="2462" />
-<TGConnectingPoint num="29" id="2463" />
-<TGConnectingPoint num="30" id="2464" />
-<TGConnectingPoint num="31" id="2465" />
-<TGConnectingPoint num="32" id="2466" />
-<TGConnectingPoint num="33" id="2467" />
-<TGConnectingPoint num="34" id="2468" />
-<TGConnectingPoint num="35" id="2469" />
-<TGConnectingPoint num="36" id="2470" />
-<TGConnectingPoint num="37" id="2471" />
-<TGConnectingPoint num="38" id="2472" />
-<TGConnectingPoint num="39" id="2473" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5100" id="2476" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="2475" />
-</COMPONENT>
 
 
-</AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="2483" >
-<cdparam x="416" y="379" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="2482" />
-<P1  x="416" y="379" id="2518" />
-<P2  x="420" y="424" id="2554" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2481" >
-<father id="2483" num="0" />
-<cdparam x="431" y="403" />
-<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<Modeling type="TML Architecture" nameTab="Mapping1" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1102" id="1636" >
+<cdparam x="612" y="450" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2477" />
-<TGConnectingPoint num="1" id="2478" />
-<TGConnectingPoint num="2" id="2479" />
-<TGConnectingPoint num="3" id="2480" />
+<infoparam name="Bus0" value="name" />
+<TGConnectingPoint num="0" id="1612" />
+<TGConnectingPoint num="1" id="1613" />
+<TGConnectingPoint num="2" id="1614" />
+<TGConnectingPoint num="3" id="1615" />
+<TGConnectingPoint num="4" id="1616" />
+<TGConnectingPoint num="5" id="1617" />
+<TGConnectingPoint num="6" id="1618" />
+<TGConnectingPoint num="7" id="1619" />
+<TGConnectingPoint num="8" id="1620" />
+<TGConnectingPoint num="9" id="1621" />
+<TGConnectingPoint num="10" id="1622" />
+<TGConnectingPoint num="11" id="1623" />
+<TGConnectingPoint num="12" id="1624" />
+<TGConnectingPoint num="13" id="1625" />
+<TGConnectingPoint num="14" id="1626" />
+<TGConnectingPoint num="15" id="1627" />
+<TGConnectingPoint num="16" id="1628" />
+<TGConnectingPoint num="17" id="1629" />
+<TGConnectingPoint num="18" id="1630" />
+<TGConnectingPoint num="19" id="1631" />
+<TGConnectingPoint num="20" id="1632" />
+<TGConnectingPoint num="21" id="1633" />
+<TGConnectingPoint num="22" id="1634" />
+<TGConnectingPoint num="23" id="1635" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="receivedData = m.data" />
+<info stereotype="BUS-RR" nodeName="Bus0" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="0"  referenceAttack="null" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="2490" >
-<cdparam x="407" y="273" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="2489" />
-<P1  x="407" y="273" id="2600" />
-<P2  x="416" y="339" id="2513" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2488" >
-<father id="2490" num="0" />
-<cdparam x="419" y="312" />
-<sizeparam width="127" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="1661" >
+<cdparam x="797" y="120" />
+<sizeparam width="200" height="200" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2484" />
-<TGConnectingPoint num="1" id="2485" />
-<TGConnectingPoint num="2" id="2486" />
-<TGConnectingPoint num="3" id="2487" />
+<infoparam name="Memory0" value="name" />
+<TGConnectingPoint num="0" id="1637" />
+<TGConnectingPoint num="1" id="1638" />
+<TGConnectingPoint num="2" id="1639" />
+<TGConnectingPoint num="3" id="1640" />
+<TGConnectingPoint num="4" id="1641" />
+<TGConnectingPoint num="5" id="1642" />
+<TGConnectingPoint num="6" id="1643" />
+<TGConnectingPoint num="7" id="1644" />
+<TGConnectingPoint num="8" id="1645" />
+<TGConnectingPoint num="9" id="1646" />
+<TGConnectingPoint num="10" id="1647" />
+<TGConnectingPoint num="11" id="1648" />
+<TGConnectingPoint num="12" id="1649" />
+<TGConnectingPoint num="13" id="1650" />
+<TGConnectingPoint num="14" id="1651" />
+<TGConnectingPoint num="15" id="1652" />
+<TGConnectingPoint num="16" id="1653" />
+<TGConnectingPoint num="17" id="1654" />
+<TGConnectingPoint num="18" id="1655" />
+<TGConnectingPoint num="19" id="1656" />
+<TGConnectingPoint num="20" id="1657" />
+<TGConnectingPoint num="21" id="1658" />
+<TGConnectingPoint num="22" id="1659" />
+<TGConnectingPoint num="23" id="1660" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="m = sdecrypt(m2, sk)" />
+<info stereotype="MEMORY" nodeName="Memory0" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="2497" >
-<cdparam x="406" y="201" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="2496" />
-<P1  x="406" y="201" id="2636" />
-<P2  x="407" y="233" id="2595" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2495" >
-<father id="2497" num="0" />
-<cdparam x="406" y="241" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="1731" >
+<cdparam x="51" y="90" />
+<sizeparam width="459" height="321" minWidth="150" minHeight="150" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2491" />
-<TGConnectingPoint num="1" id="2492" />
-<TGConnectingPoint num="2" id="2493" />
-<TGConnectingPoint num="3" id="2494" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-</extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2504" >
-<cdparam x="406" y="141" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="2503" />
-<P1  x="406" y="141" id="2652" />
-<P2  x="406" y="171" id="2635" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2502" >
-<father id="2504" num="0" />
-<cdparam x="406" y="181" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="cpu0" value="name" />
+<TGConnectingPoint num="0" id="1707" />
+<TGConnectingPoint num="1" id="1708" />
+<TGConnectingPoint num="2" id="1709" />
+<TGConnectingPoint num="3" id="1710" />
+<TGConnectingPoint num="4" id="1711" />
+<TGConnectingPoint num="5" id="1712" />
+<TGConnectingPoint num="6" id="1713" />
+<TGConnectingPoint num="7" id="1714" />
+<TGConnectingPoint num="8" id="1715" />
+<TGConnectingPoint num="9" id="1716" />
+<TGConnectingPoint num="10" id="1717" />
+<TGConnectingPoint num="11" id="1718" />
+<TGConnectingPoint num="12" id="1719" />
+<TGConnectingPoint num="13" id="1720" />
+<TGConnectingPoint num="14" id="1721" />
+<TGConnectingPoint num="15" id="1722" />
+<TGConnectingPoint num="16" id="1723" />
+<TGConnectingPoint num="17" id="1724" />
+<TGConnectingPoint num="18" id="1725" />
+<TGConnectingPoint num="19" id="1726" />
+<TGConnectingPoint num="20" id="1727" />
+<TGConnectingPoint num="21" id="1728" />
+<TGConnectingPoint num="22" id="1729" />
+<TGConnectingPoint num="23" id="1730" />
+<extraparam>
+<info stereotype="CPURRPB" nodeName="cpu0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="1"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="99"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="1" MECType="0" encryption="0"/>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="1670" >
+<father id="1731" num="0" />
+<cdparam x="226" y="304" />
+<sizeparam width="109" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2498" />
-<TGConnectingPoint num="1" id="2499" />
-<TGConnectingPoint num="2" id="2500" />
-<TGConnectingPoint num="3" id="2501" />
+<cdrectangleparam minX="0" maxX="350" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::Timer" />
+<TGConnectingPoint num="0" id="1662" />
+<TGConnectingPoint num="1" id="1663" />
+<TGConnectingPoint num="2" id="1664" />
+<TGConnectingPoint num="3" id="1665" />
+<TGConnectingPoint num="4" id="1666" />
+<TGConnectingPoint num="5" id="1667" />
+<TGConnectingPoint num="6" id="1668" />
+<TGConnectingPoint num="7" id="1669" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2511" >
-<cdparam x="407" y="70" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="2510" />
-<P1  x="407" y="70" id="2687" />
-<P2  x="406" y="101" id="2647" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2509" >
-<father id="2511" num="0" />
-<cdparam x="407" y="110" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="1679" >
+<father id="1731" num="1" />
+<cdparam x="290" y="234" />
+<sizeparam width="139" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2505" />
-<TGConnectingPoint num="1" id="2506" />
-<TGConnectingPoint num="2" id="2507" />
-<TGConnectingPoint num="3" id="2508" />
+<cdrectangleparam minX="0" maxX="320" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::Application" />
+<TGConnectingPoint num="0" id="1671" />
+<TGConnectingPoint num="1" id="1672" />
+<TGConnectingPoint num="2" id="1673" />
+<TGConnectingPoint num="3" id="1674" />
+<TGConnectingPoint num="4" id="1675" />
+<TGConnectingPoint num="5" id="1676" />
+<TGConnectingPoint num="6" id="1677" />
+<TGConnectingPoint num="7" id="1678" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="5106" id="2552" >
-<cdparam x="327" y="339" />
-<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="messageDecrypted" />
-<TGConnectingPoint num="0" id="2512" />
-<TGConnectingPoint num="1" id="2513" />
-<TGConnectingPoint num="2" id="2514" />
-<TGConnectingPoint num="3" id="2515" />
-<TGConnectingPoint num="4" id="2516" />
-<TGConnectingPoint num="5" id="2517" />
-<TGConnectingPoint num="6" id="2518" />
-<TGConnectingPoint num="7" id="2519" />
-<TGConnectingPoint num="8" id="2520" />
-<TGConnectingPoint num="9" id="2521" />
-<TGConnectingPoint num="10" id="2522" />
-<TGConnectingPoint num="11" id="2523" />
-<TGConnectingPoint num="12" id="2524" />
-<TGConnectingPoint num="13" id="2525" />
-<TGConnectingPoint num="14" id="2526" />
-<TGConnectingPoint num="15" id="2527" />
-<TGConnectingPoint num="16" id="2528" />
-<TGConnectingPoint num="17" id="2529" />
-<TGConnectingPoint num="18" id="2530" />
-<TGConnectingPoint num="19" id="2531" />
-<TGConnectingPoint num="20" id="2532" />
-<TGConnectingPoint num="21" id="2533" />
-<TGConnectingPoint num="22" id="2534" />
-<TGConnectingPoint num="23" id="2535" />
-<TGConnectingPoint num="24" id="2536" />
-<TGConnectingPoint num="25" id="2537" />
-<TGConnectingPoint num="26" id="2538" />
-<TGConnectingPoint num="27" id="2539" />
-<TGConnectingPoint num="28" id="2540" />
-<TGConnectingPoint num="29" id="2541" />
-<TGConnectingPoint num="30" id="2542" />
-<TGConnectingPoint num="31" id="2543" />
-<TGConnectingPoint num="32" id="2544" />
-<TGConnectingPoint num="33" id="2545" />
-<TGConnectingPoint num="34" id="2546" />
-<TGConnectingPoint num="35" id="2547" />
-<TGConnectingPoint num="36" id="2548" />
-<TGConnectingPoint num="37" id="2549" />
-<TGConnectingPoint num="38" id="2550" />
-<TGConnectingPoint num="39" id="2551" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="2593" >
-<cdparam x="350" y="424" />
-<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="SecretDataReceived" />
-<TGConnectingPoint num="0" id="2553" />
-<TGConnectingPoint num="1" id="2554" />
-<TGConnectingPoint num="2" id="2555" />
-<TGConnectingPoint num="3" id="2556" />
-<TGConnectingPoint num="4" id="2557" />
-<TGConnectingPoint num="5" id="2558" />
-<TGConnectingPoint num="6" id="2559" />
-<TGConnectingPoint num="7" id="2560" />
-<TGConnectingPoint num="8" id="2561" />
-<TGConnectingPoint num="9" id="2562" />
-<TGConnectingPoint num="10" id="2563" />
-<TGConnectingPoint num="11" id="2564" />
-<TGConnectingPoint num="12" id="2565" />
-<TGConnectingPoint num="13" id="2566" />
-<TGConnectingPoint num="14" id="2567" />
-<TGConnectingPoint num="15" id="2568" />
-<TGConnectingPoint num="16" id="2569" />
-<TGConnectingPoint num="17" id="2570" />
-<TGConnectingPoint num="18" id="2571" />
-<TGConnectingPoint num="19" id="2572" />
-<TGConnectingPoint num="20" id="2573" />
-<TGConnectingPoint num="21" id="2574" />
-<TGConnectingPoint num="22" id="2575" />
-<TGConnectingPoint num="23" id="2576" />
-<TGConnectingPoint num="24" id="2577" />
-<TGConnectingPoint num="25" id="2578" />
-<TGConnectingPoint num="26" id="2579" />
-<TGConnectingPoint num="27" id="2580" />
-<TGConnectingPoint num="28" id="2581" />
-<TGConnectingPoint num="29" id="2582" />
-<TGConnectingPoint num="30" id="2583" />
-<TGConnectingPoint num="31" id="2584" />
-<TGConnectingPoint num="32" id="2585" />
-<TGConnectingPoint num="33" id="2586" />
-<TGConnectingPoint num="34" id="2587" />
-<TGConnectingPoint num="35" id="2588" />
-<TGConnectingPoint num="36" id="2589" />
-<TGConnectingPoint num="37" id="2590" />
-<TGConnectingPoint num="38" id="2591" />
-<TGConnectingPoint num="39" id="2592" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="2634" >
-<cdparam x="336" y="233" />
-<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="messageDecrypt" />
-<TGConnectingPoint num="0" id="2594" />
-<TGConnectingPoint num="1" id="2595" />
-<TGConnectingPoint num="2" id="2596" />
-<TGConnectingPoint num="3" id="2597" />
-<TGConnectingPoint num="4" id="2598" />
-<TGConnectingPoint num="5" id="2599" />
-<TGConnectingPoint num="6" id="2600" />
-<TGConnectingPoint num="7" id="2601" />
-<TGConnectingPoint num="8" id="2602" />
-<TGConnectingPoint num="9" id="2603" />
-<TGConnectingPoint num="10" id="2604" />
-<TGConnectingPoint num="11" id="2605" />
-<TGConnectingPoint num="12" id="2606" />
-<TGConnectingPoint num="13" id="2607" />
-<TGConnectingPoint num="14" id="2608" />
-<TGConnectingPoint num="15" id="2609" />
-<TGConnectingPoint num="16" id="2610" />
-<TGConnectingPoint num="17" id="2611" />
-<TGConnectingPoint num="18" id="2612" />
-<TGConnectingPoint num="19" id="2613" />
-<TGConnectingPoint num="20" id="2614" />
-<TGConnectingPoint num="21" id="2615" />
-<TGConnectingPoint num="22" id="2616" />
-<TGConnectingPoint num="23" id="2617" />
-<TGConnectingPoint num="24" id="2618" />
-<TGConnectingPoint num="25" id="2619" />
-<TGConnectingPoint num="26" id="2620" />
-<TGConnectingPoint num="27" id="2621" />
-<TGConnectingPoint num="28" id="2622" />
-<TGConnectingPoint num="29" id="2623" />
-<TGConnectingPoint num="30" id="2624" />
-<TGConnectingPoint num="31" id="2625" />
-<TGConnectingPoint num="32" id="2626" />
-<TGConnectingPoint num="33" id="2627" />
-<TGConnectingPoint num="34" id="2628" />
-<TGConnectingPoint num="35" id="2629" />
-<TGConnectingPoint num="36" id="2630" />
-<TGConnectingPoint num="37" id="2631" />
-<TGConnectingPoint num="38" id="2632" />
-<TGConnectingPoint num="39" id="2633" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5104" id="2645" >
-<cdparam x="372" y="176" />
-<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="1688" >
+<father id="1731" num="2" />
+<cdparam x="96" y="246" />
+<sizeparam width="108" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="chin(m2)" />
-<TGConnectingPoint num="0" id="2635" />
-<TGConnectingPoint num="1" id="2636" />
-<TGConnectingPoint num="2" id="2637" />
-<TGConnectingPoint num="3" id="2638" />
-<TGConnectingPoint num="4" id="2639" />
-<TGConnectingPoint num="5" id="2640" />
-<TGConnectingPoint num="6" id="2641" />
-<TGConnectingPoint num="7" id="2642" />
-<TGConnectingPoint num="8" id="2643" />
-<TGConnectingPoint num="9" id="2644" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="2686" >
-<cdparam x="340" y="101" />
-<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="0" maxX="351" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::TCPIP" />
+<TGConnectingPoint num="0" id="1680" />
+<TGConnectingPoint num="1" id="1681" />
+<TGConnectingPoint num="2" id="1682" />
+<TGConnectingPoint num="3" id="1683" />
+<TGConnectingPoint num="4" id="1684" />
+<TGConnectingPoint num="5" id="1685" />
+<TGConnectingPoint num="6" id="1686" />
+<TGConnectingPoint num="7" id="1687" />
+<extraparam>
+<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1697" >
+<father id="1731" num="3" />
+<cdparam x="291" y="153" />
+<sizeparam width="136" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="waitingForMessage" />
-<TGConnectingPoint num="0" id="2646" />
-<TGConnectingPoint num="1" id="2647" />
-<TGConnectingPoint num="2" id="2648" />
-<TGConnectingPoint num="3" id="2649" />
-<TGConnectingPoint num="4" id="2650" />
-<TGConnectingPoint num="5" id="2651" />
-<TGConnectingPoint num="6" id="2652" />
-<TGConnectingPoint num="7" id="2653" />
-<TGConnectingPoint num="8" id="2654" />
-<TGConnectingPoint num="9" id="2655" />
-<TGConnectingPoint num="10" id="2656" />
-<TGConnectingPoint num="11" id="2657" />
-<TGConnectingPoint num="12" id="2658" />
-<TGConnectingPoint num="13" id="2659" />
-<TGConnectingPoint num="14" id="2660" />
-<TGConnectingPoint num="15" id="2661" />
-<TGConnectingPoint num="16" id="2662" />
-<TGConnectingPoint num="17" id="2663" />
-<TGConnectingPoint num="18" id="2664" />
-<TGConnectingPoint num="19" id="2665" />
-<TGConnectingPoint num="20" id="2666" />
-<TGConnectingPoint num="21" id="2667" />
-<TGConnectingPoint num="22" id="2668" />
-<TGConnectingPoint num="23" id="2669" />
-<TGConnectingPoint num="24" id="2670" />
-<TGConnectingPoint num="25" id="2671" />
-<TGConnectingPoint num="26" id="2672" />
-<TGConnectingPoint num="27" id="2673" />
-<TGConnectingPoint num="28" id="2674" />
-<TGConnectingPoint num="29" id="2675" />
-<TGConnectingPoint num="30" id="2676" />
-<TGConnectingPoint num="31" id="2677" />
-<TGConnectingPoint num="32" id="2678" />
-<TGConnectingPoint num="33" id="2679" />
-<TGConnectingPoint num="34" id="2680" />
-<TGConnectingPoint num="35" id="2681" />
-<TGConnectingPoint num="36" id="2682" />
-<TGConnectingPoint num="37" id="2683" />
-<TGConnectingPoint num="38" id="2684" />
-<TGConnectingPoint num="39" id="2685" />
+<cdrectangleparam minX="0" maxX="323" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::SmartCard" />
+<TGConnectingPoint num="0" id="1689" />
+<TGConnectingPoint num="1" id="1690" />
+<TGConnectingPoint num="2" id="1691" />
+<TGConnectingPoint num="3" id="1692" />
+<TGConnectingPoint num="4" id="1693" />
+<TGConnectingPoint num="5" id="1694" />
+<TGConnectingPoint num="6" id="1695" />
+<TGConnectingPoint num="7" id="1696" />
 <extraparam>
+<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
-
-<COMPONENT type="5100" id="2688" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="1706" >
+<father id="1731" num="4" />
+<cdparam x="92" y="154" />
+<sizeparam width="163" height="50" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="2687" />
-</COMPONENT>
+<cdrectangleparam minX="0" maxX="296" minY="0" maxY="271" />
+<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
+<TGConnectingPoint num="0" id="1698" />
+<TGConnectingPoint num="1" id="1699" />
+<TGConnectingPoint num="2" id="1700" />
+<TGConnectingPoint num="3" id="1701" />
+<TGConnectingPoint num="4" id="1702" />
+<TGConnectingPoint num="5" id="1703" />
+<TGConnectingPoint num="6" id="1704" />
+<TGConnectingPoint num="7" id="1705" />
+<extraparam>
+<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
 
+<CONNECTOR type="125" id="1732" >
+<cdparam x="800" y="322" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="847" y="320" id="1651" />
+<P2  x="799" y="450" id="1621" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="1733" >
+<cdparam x="510" y="411" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="510" y="411" id="1714" />
+<P2  x="612" y="462" id="1622" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
 
-</AVATARStateMachineDiagramPanel>
+</TMLArchiDiagramPanel>
 
 </Modeling>
 
 
 
 
-<Modeling type="AVATAR Design" nameTab="DHSecurityProtocol" >
-<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
-<MainCode value="void __user_init() {"/>
-<MainCode value="}"/>
-<Optimized value="true" />
-<Validated value="" />
-<Ignored value="" />
-
-<CONNECTOR type="5002" id="2694" >
-<cdparam x="568" y="220" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Block0 to Block0" value="" />
-<TGConnectingPoint num="0" id="2691" />
-<TGConnectingPoint num="1" id="2692" />
-<TGConnectingPoint num="2" id="2693" />
-<P1  x="459" y="199" id="2791" />
-<P2  x="459" y="254" id="2784" />
-<Point x="490" y="199" />
-<Point x="490" y="254" />
-<AutomaticDrawing  data="true" />
-<extraparam>
-<iso value="in chin(Message msg)" />
-<osd value="out chout(Message msg)" />
-<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" />
-</extraparam>
-</CONNECTOR><SUBCOMPONENT type="-1" id="2689" >
-<father id="2694" num="0" />
-<cdparam x="490" y="199" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="2690" >
-<father id="2694" num="1" />
-<cdparam x="490" y="254" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-
-<COMPONENT type="302" id="2711" >
-<cdparam x="517" y="154" />
-<sizeparam width="565" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<Modeling type="TML Architecture" nameTab="Mapping2" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1105" id="1758" >
+<cdparam x="309" y="358" />
+<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK
-#PrivatePublicKeys SmartCard privK pubK
-
-#Confidentiality InterfaceDevice.secretData
-#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m
-" />
-<TGConnectingPoint num="0" id="2695" />
-<TGConnectingPoint num="1" id="2696" />
-<TGConnectingPoint num="2" id="2697" />
-<TGConnectingPoint num="3" id="2698" />
-<TGConnectingPoint num="4" id="2699" />
-<TGConnectingPoint num="5" id="2700" />
-<TGConnectingPoint num="6" id="2701" />
-<TGConnectingPoint num="7" id="2702" />
-<TGConnectingPoint num="8" id="2703" />
-<TGConnectingPoint num="9" id="2704" />
-<TGConnectingPoint num="10" id="2705" />
-<TGConnectingPoint num="11" id="2706" />
-<TGConnectingPoint num="12" id="2707" />
-<TGConnectingPoint num="13" id="2708" />
-<TGConnectingPoint num="14" id="2709" />
-<TGConnectingPoint num="15" id="2710" />
+<infoparam name="Memory0" value="name" />
+<TGConnectingPoint num="0" id="1734" />
+<TGConnectingPoint num="1" id="1735" />
+<TGConnectingPoint num="2" id="1736" />
+<TGConnectingPoint num="3" id="1737" />
+<TGConnectingPoint num="4" id="1738" />
+<TGConnectingPoint num="5" id="1739" />
+<TGConnectingPoint num="6" id="1740" />
+<TGConnectingPoint num="7" id="1741" />
+<TGConnectingPoint num="8" id="1742" />
+<TGConnectingPoint num="9" id="1743" />
+<TGConnectingPoint num="10" id="1744" />
+<TGConnectingPoint num="11" id="1745" />
+<TGConnectingPoint num="12" id="1746" />
+<TGConnectingPoint num="13" id="1747" />
+<TGConnectingPoint num="14" id="1748" />
+<TGConnectingPoint num="15" id="1749" />
+<TGConnectingPoint num="16" id="1750" />
+<TGConnectingPoint num="17" id="1751" />
+<TGConnectingPoint num="18" id="1752" />
+<TGConnectingPoint num="19" id="1753" />
+<TGConnectingPoint num="20" id="1754" />
+<TGConnectingPoint num="21" id="1755" />
+<TGConnectingPoint num="22" id="1756" />
+<TGConnectingPoint num="23" id="1757" />
 <extraparam>
-<Line value="#PrivatePublicKeys InterfaceDevice privK pubK" />
-<Line value="#PrivatePublicKeys SmartCard privK pubK" />
-<Line value="" />
-<Line value="#Confidentiality InterfaceDevice.secretData" />
-<Line value="#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m" />
+<info stereotype="MEMORY" nodeName="Memory0" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="2720" >
-<cdparam x="260" y="373" />
-<sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1102" id="1783" >
+<cdparam x="277" y="270" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="DataType0" value="Message" />
-<TGConnectingPoint num="0" id="2712" />
-<TGConnectingPoint num="1" id="2713" />
-<TGConnectingPoint num="2" id="2714" />
-<TGConnectingPoint num="3" id="2715" />
-<TGConnectingPoint num="4" id="2716" />
-<TGConnectingPoint num="5" id="2717" />
-<TGConnectingPoint num="6" id="2718" />
-<TGConnectingPoint num="7" id="2719" />
+<infoparam name="Bus0" value="name" />
+<TGConnectingPoint num="0" id="1759" />
+<TGConnectingPoint num="1" id="1760" />
+<TGConnectingPoint num="2" id="1761" />
+<TGConnectingPoint num="3" id="1762" />
+<TGConnectingPoint num="4" id="1763" />
+<TGConnectingPoint num="5" id="1764" />
+<TGConnectingPoint num="6" id="1765" />
+<TGConnectingPoint num="7" id="1766" />
+<TGConnectingPoint num="8" id="1767" />
+<TGConnectingPoint num="9" id="1768" />
+<TGConnectingPoint num="10" id="1769" />
+<TGConnectingPoint num="11" id="1770" />
+<TGConnectingPoint num="12" id="1771" />
+<TGConnectingPoint num="13" id="1772" />
+<TGConnectingPoint num="14" id="1773" />
+<TGConnectingPoint num="15" id="1774" />
+<TGConnectingPoint num="16" id="1775" />
+<TGConnectingPoint num="17" id="1776" />
+<TGConnectingPoint num="18" id="1777" />
+<TGConnectingPoint num="19" id="1778" />
+<TGConnectingPoint num="20" id="1779" />
+<TGConnectingPoint num="21" id="1780" />
+<TGConnectingPoint num="22" id="1781" />
+<TGConnectingPoint num="23" id="1782" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<info stereotype="BUS-RR" nodeName="Bus0" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="5"  privacy="0"  referenceAttack="ReadDataFromBus" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="2729" >
-<cdparam x="68" y="372" />
-<sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="1817" >
+<cdparam x="574" y="227" />
+<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="DataType0" value="Key" />
-<TGConnectingPoint num="0" id="2721" />
-<TGConnectingPoint num="1" id="2722" />
-<TGConnectingPoint num="2" id="2723" />
-<TGConnectingPoint num="3" id="2724" />
-<TGConnectingPoint num="4" id="2725" />
-<TGConnectingPoint num="5" id="2726" />
-<TGConnectingPoint num="6" id="2727" />
-<TGConnectingPoint num="7" id="2728" />
+<infoparam name="CPU2" value="name" />
+<TGConnectingPoint num="0" id="1793" />
+<TGConnectingPoint num="1" id="1794" />
+<TGConnectingPoint num="2" id="1795" />
+<TGConnectingPoint num="3" id="1796" />
+<TGConnectingPoint num="4" id="1797" />
+<TGConnectingPoint num="5" id="1798" />
+<TGConnectingPoint num="6" id="1799" />
+<TGConnectingPoint num="7" id="1800" />
+<TGConnectingPoint num="8" id="1801" />
+<TGConnectingPoint num="9" id="1802" />
+<TGConnectingPoint num="10" id="1803" />
+<TGConnectingPoint num="11" id="1804" />
+<TGConnectingPoint num="12" id="1805" />
+<TGConnectingPoint num="13" id="1806" />
+<TGConnectingPoint num="14" id="1807" />
+<TGConnectingPoint num="15" id="1808" />
+<TGConnectingPoint num="16" id="1809" />
+<TGConnectingPoint num="17" id="1810" />
+<TGConnectingPoint num="18" id="1811" />
+<TGConnectingPoint num="19" id="1812" />
+<TGConnectingPoint num="20" id="1813" />
+<TGConnectingPoint num="21" id="1814" />
+<TGConnectingPoint num="22" id="1815" />
+<TGConnectingPoint num="23" id="1816" />
 <extraparam>
-<Attribute access="0" id="data" value="" type="8" typeOther="" />
+<info stereotype="CPURR" nodeName="CPU2" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="4" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
+<SUBCOMPONENT type="1101" id="1792" >
+<father id="1817" num="0" />
+<cdparam x="604" y="279" />
+<sizeparam width="109" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="65" minY="0" maxY="95" />
+<infoparam name="TGComponent" value="AppC::Timer" />
+<TGConnectingPoint num="0" id="1784" />
+<TGConnectingPoint num="1" id="1785" />
+<TGConnectingPoint num="2" id="1786" />
+<TGConnectingPoint num="3" id="1787" />
+<TGConnectingPoint num="4" id="1788" />
+<TGConnectingPoint num="5" id="1789" />
+<TGConnectingPoint num="6" id="1790" />
+<TGConnectingPoint num="7" id="1791" />
+<extraparam>
+<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="5000" id="2804" >
-<cdparam x="21" y="145" />
-<sizeparam width="438" height="219" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="1851" >
+<cdparam x="56" y="231" />
+<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Block0" value="System" />
-<TGConnectingPoint num="0" id="2780" />
-<TGConnectingPoint num="1" id="2781" />
-<TGConnectingPoint num="2" id="2782" />
-<TGConnectingPoint num="3" id="2783" />
-<TGConnectingPoint num="4" id="2784" />
-<TGConnectingPoint num="5" id="2785" />
-<TGConnectingPoint num="6" id="2786" />
-<TGConnectingPoint num="7" id="2787" />
-<TGConnectingPoint num="8" id="2788" />
-<TGConnectingPoint num="9" id="2789" />
-<TGConnectingPoint num="10" id="2790" />
-<TGConnectingPoint num="11" id="2791" />
-<TGConnectingPoint num="12" id="2792" />
-<TGConnectingPoint num="13" id="2793" />
-<TGConnectingPoint num="14" id="2794" />
-<TGConnectingPoint num="15" id="2795" />
-<TGConnectingPoint num="16" id="2796" />
-<TGConnectingPoint num="17" id="2797" />
-<TGConnectingPoint num="18" id="2798" />
-<TGConnectingPoint num="19" id="2799" />
-<TGConnectingPoint num="20" id="2800" />
-<TGConnectingPoint num="21" id="2801" />
-<TGConnectingPoint num="22" id="2802" />
-<TGConnectingPoint num="23" id="2803" />
+<infoparam name="CPU1" value="name" />
+<TGConnectingPoint num="0" id="1827" />
+<TGConnectingPoint num="1" id="1828" />
+<TGConnectingPoint num="2" id="1829" />
+<TGConnectingPoint num="3" id="1830" />
+<TGConnectingPoint num="4" id="1831" />
+<TGConnectingPoint num="5" id="1832" />
+<TGConnectingPoint num="6" id="1833" />
+<TGConnectingPoint num="7" id="1834" />
+<TGConnectingPoint num="8" id="1835" />
+<TGConnectingPoint num="9" id="1836" />
+<TGConnectingPoint num="10" id="1837" />
+<TGConnectingPoint num="11" id="1838" />
+<TGConnectingPoint num="12" id="1839" />
+<TGConnectingPoint num="13" id="1840" />
+<TGConnectingPoint num="14" id="1841" />
+<TGConnectingPoint num="15" id="1842" />
+<TGConnectingPoint num="16" id="1843" />
+<TGConnectingPoint num="17" id="1844" />
+<TGConnectingPoint num="18" id="1845" />
+<TGConnectingPoint num="19" id="1846" />
+<TGConnectingPoint num="20" id="1847" />
+<TGConnectingPoint num="21" id="1848" />
+<TGConnectingPoint num="22" id="1849" />
+<TGConnectingPoint num="23" id="1850" />
 <extraparam>
-<CryptoBlock value="false" />
-<Signal value="in chin(Message msg)" attached="true" />
-<Signal value="out chout(Message msg)" attached="true" />
+<info stereotype="CPURR" nodeName="CPU1" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="2" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="2754" >
-<father id="2804" num="0" />
-<cdparam x="36" y="233" />
-<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" />
-<infoparam name="Block0" value="InterfaceDevice" />
-<TGConnectingPoint num="0" id="2730" />
-<TGConnectingPoint num="1" id="2731" />
-<TGConnectingPoint num="2" id="2732" />
-<TGConnectingPoint num="3" id="2733" />
-<TGConnectingPoint num="4" id="2734" />
-<TGConnectingPoint num="5" id="2735" />
-<TGConnectingPoint num="6" id="2736" />
-<TGConnectingPoint num="7" id="2737" />
-<TGConnectingPoint num="8" id="2738" />
-<TGConnectingPoint num="9" id="2739" />
-<TGConnectingPoint num="10" id="2740" />
-<TGConnectingPoint num="11" id="2741" />
-<TGConnectingPoint num="12" id="2742" />
-<TGConnectingPoint num="13" id="2743" />
-<TGConnectingPoint num="14" id="2744" />
-<TGConnectingPoint num="15" id="2745" />
-<TGConnectingPoint num="16" id="2746" />
-<TGConnectingPoint num="17" id="2747" />
-<TGConnectingPoint num="18" id="2748" />
-<TGConnectingPoint num="19" id="2749" />
-<TGConnectingPoint num="20" id="2750" />
-<TGConnectingPoint num="21" id="2751" />
-<TGConnectingPoint num="22" id="2752" />
-<TGConnectingPoint num="23" id="2753" />
-<extraparam>
-<CryptoBlock value="true" />
-<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" />
-<Method value="Message encrypt(Message msg, Key k)" />
-<Method value="Message decrypt(Message msg, Key k)" />
-<Method value="Message sencrypt(Message msg, Key k)" />
-<Method value="Message sdecrypt(Message msg, Key k)" />
-<Method value="Message MAC(Message msg, Key k)" />
-<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
-<Method value="Message concat2(Message msg1, Message msg2)" />
-<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
-<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="get2(Message msg, Message msg1, Message msg2)" />
-<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
-<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="Message aencrypt(Message msg, Key k)" />
-<Method value="Message adecrypt(Message msg, Key k)" />
-<Method value="Key pk(Key k)" />
-<Method value="Message sign(Message msg, Key k)" />
-<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
-<Method value="Message cert(Key k, Message msg)" />
-<Method value="bool verifyCert(Message cert, Key k)" />
-<Method value="Key getpk(Message cert)" />
-<Method value="Key DH(Key pubK, Key privK)" />
-<Method value="Message hash(Message msg)" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="2779" >
-<father id="2804" num="1" />
-<cdparam x="263" y="233" />
-<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="1826" >
+<father id="1851" num="0" />
+<cdparam x="56" y="276" />
+<sizeparam width="163" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" />
-<infoparam name="Block0" value="SmartCard" />
-<TGConnectingPoint num="0" id="2755" />
-<TGConnectingPoint num="1" id="2756" />
-<TGConnectingPoint num="2" id="2757" />
-<TGConnectingPoint num="3" id="2758" />
-<TGConnectingPoint num="4" id="2759" />
-<TGConnectingPoint num="5" id="2760" />
-<TGConnectingPoint num="6" id="2761" />
-<TGConnectingPoint num="7" id="2762" />
-<TGConnectingPoint num="8" id="2763" />
-<TGConnectingPoint num="9" id="2764" />
-<TGConnectingPoint num="10" id="2765" />
-<TGConnectingPoint num="11" id="2766" />
-<TGConnectingPoint num="12" id="2767" />
-<TGConnectingPoint num="13" id="2768" />
-<TGConnectingPoint num="14" id="2769" />
-<TGConnectingPoint num="15" id="2770" />
-<TGConnectingPoint num="16" id="2771" />
-<TGConnectingPoint num="17" id="2772" />
-<TGConnectingPoint num="18" id="2773" />
-<TGConnectingPoint num="19" id="2774" />
-<TGConnectingPoint num="20" id="2775" />
-<TGConnectingPoint num="21" id="2776" />
-<TGConnectingPoint num="22" id="2777" />
-<TGConnectingPoint num="23" id="2778" />
+<cdrectangleparam minX="0" maxX="2" minY="0" maxY="86" />
+<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
+<TGConnectingPoint num="0" id="1818" />
+<TGConnectingPoint num="1" id="1819" />
+<TGConnectingPoint num="2" id="1820" />
+<TGConnectingPoint num="3" id="1821" />
+<TGConnectingPoint num="4" id="1822" />
+<TGConnectingPoint num="5" id="1823" />
+<TGConnectingPoint num="6" id="1824" />
+<TGConnectingPoint num="7" id="1825" />
 <extraparam>
-<CryptoBlock value="true" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" />
-<Method value="Message encrypt(Message msg, Key k)" />
-<Method value="Message decrypt(Message msg, Key k)" />
-<Method value="Message sencrypt(Message msg, Key k)" />
-<Method value="Message sdecrypt(Message msg, Key k)" />
-<Method value="Message MAC(Message msg, Key k)" />
-<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
-<Method value="Message concat2(Message msg1, Message msg2)" />
-<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
-<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="get2(Message msg, Message msg1, Message msg2)" />
-<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
-<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="Message aencrypt(Message msg, Key k)" />
-<Method value="Message adecrypt(Message msg, Key k)" />
-<Method value="Key pk(Key k)" />
-<Method value="Message sign(Message msg, Key k)" />
-<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
-<Method value="Message cert(Key k, Message msg)" />
-<Method value="bool verifyCert(Message cert, Key k)" />
-<Method value="Key getpk(Message cert)" />
-<Method value="Key DH(Key pubK, Key privK)" />
-<Method value="Message hash(Message msg)" />
+<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
-
-</AVATARBlockDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="5100" id="2806" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="1903" >
+<cdparam x="267" y="59" />
+<sizeparam width="272" height="167" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="2805" />
+<infoparam name="CPU0" value="name" />
+<TGConnectingPoint num="0" id="1879" />
+<TGConnectingPoint num="1" id="1880" />
+<TGConnectingPoint num="2" id="1881" />
+<TGConnectingPoint num="3" id="1882" />
+<TGConnectingPoint num="4" id="1883" />
+<TGConnectingPoint num="5" id="1884" />
+<TGConnectingPoint num="6" id="1885" />
+<TGConnectingPoint num="7" id="1886" />
+<TGConnectingPoint num="8" id="1887" />
+<TGConnectingPoint num="9" id="1888" />
+<TGConnectingPoint num="10" id="1889" />
+<TGConnectingPoint num="11" id="1890" />
+<TGConnectingPoint num="12" id="1891" />
+<TGConnectingPoint num="13" id="1892" />
+<TGConnectingPoint num="14" id="1893" />
+<TGConnectingPoint num="15" id="1894" />
+<TGConnectingPoint num="16" id="1895" />
+<TGConnectingPoint num="17" id="1896" />
+<TGConnectingPoint num="18" id="1897" />
+<TGConnectingPoint num="19" id="1898" />
+<TGConnectingPoint num="20" id="1899" />
+<TGConnectingPoint num="21" id="1900" />
+<TGConnectingPoint num="22" id="1901" />
+<TGConnectingPoint num="23" id="1902" />
+<extraparam>
+<info stereotype="CPURR" nodeName="CPU0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/>
+</extraparam>
 </COMPONENT>
-
-
-</AVATARStateMachineDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="2813" >
-<cdparam x="418" y="632" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="2812" />
-<P1  x="418" y="632" id="2980" />
-<P2  x="422" y="677" id="3016" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2811" >
-<father id="2813" num="0" />
-<cdparam x="433" y="656" />
-<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="1860" >
+<father id="1903" num="0" />
+<cdparam x="392" y="119" />
+<sizeparam width="136" height="37" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2807" />
-<TGConnectingPoint num="1" id="2808" />
-<TGConnectingPoint num="2" id="2809" />
-<TGConnectingPoint num="3" id="2810" />
+<cdrectangleparam minX="0" maxX="136" minY="0" maxY="127" />
+<infoparam name="TGComponent" value="AppC::SmartCard" />
+<TGConnectingPoint num="0" id="1852" />
+<TGConnectingPoint num="1" id="1853" />
+<TGConnectingPoint num="2" id="1854" />
+<TGConnectingPoint num="3" id="1855" />
+<TGConnectingPoint num="4" id="1856" />
+<TGConnectingPoint num="5" id="1857" />
+<TGConnectingPoint num="6" id="1858" />
+<TGConnectingPoint num="7" id="1859" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="receivedData = m.data" />
+<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2820" >
-<cdparam x="409" y="526" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="2819" />
-<P1  x="409" y="526" id="3062" />
-<P2  x="418" y="592" id="2975" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2818" >
-<father id="2820" num="0" />
-<cdparam x="431" y="551" />
-<sizeparam width="151" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="1869" >
+<father id="1903" num="1" />
+<cdparam x="293" y="165" />
+<sizeparam width="139" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2814" />
-<TGConnectingPoint num="1" id="2815" />
-<TGConnectingPoint num="2" id="2816" />
-<TGConnectingPoint num="3" id="2817" />
+<cdrectangleparam minX="0" maxX="133" minY="0" maxY="127" />
+<infoparam name="TGComponent" value="AppC::Application" />
+<TGConnectingPoint num="0" id="1861" />
+<TGConnectingPoint num="1" id="1862" />
+<TGConnectingPoint num="2" id="1863" />
+<TGConnectingPoint num="3" id="1864" />
+<TGConnectingPoint num="4" id="1865" />
+<TGConnectingPoint num="5" id="1866" />
+<TGConnectingPoint num="6" id="1867" />
+<TGConnectingPoint num="7" id="1868" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="sk = DH(alicePubK, privK)" />
-<actions value="m = sdecrypt(m2, sk)" />
+<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2827" >
-<cdparam x="408" y="454" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="2826" />
-<P1  x="408" y="454" id="3098" />
-<P2  x="409" y="486" id="3057" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2825" >
-<father id="2827" num="0" />
-<cdparam x="408" y="494" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="1878" >
+<father id="1903" num="2" />
+<cdparam x="277" y="90" />
+<sizeparam width="108" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2821" />
-<TGConnectingPoint num="1" id="2822" />
-<TGConnectingPoint num="2" id="2823" />
-<TGConnectingPoint num="3" id="2824" />
+<cdrectangleparam minX="0" maxX="164" minY="0" maxY="127" />
+<infoparam name="TGComponent" value="AppC::TCPIP" />
+<TGConnectingPoint num="0" id="1870" />
+<TGConnectingPoint num="1" id="1871" />
+<TGConnectingPoint num="2" id="1872" />
+<TGConnectingPoint num="3" id="1873" />
+<TGConnectingPoint num="4" id="1874" />
+<TGConnectingPoint num="5" id="1875" />
+<TGConnectingPoint num="6" id="1876" />
+<TGConnectingPoint num="7" id="1877" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="2834" >
-<cdparam x="408" y="394" />
+<CONNECTOR type="125" id="1904" >
+<cdparam x="402" y="367" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="2833" />
-<P1  x="408" y="394" id="3114" />
-<P2  x="408" y="424" id="3097" />
+<infoparam name="connector from Memory0 to Bus0" value="{info}" />
+<P1  x="403" y="358" id="1735" />
+<P2  x="402" y="320" id="1765" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2832" >
-<father id="2834" num="0" />
-<cdparam x="408" y="434" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2828" />
-<TGConnectingPoint num="1" id="2829" />
-<TGConnectingPoint num="2" id="2830" />
-<TGConnectingPoint num="3" id="2831" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2841" >
-<cdparam x="407" y="70" />
+</CONNECTOR>
+<CONNECTOR type="125" id="1905" >
+<cdparam x="190" y="300" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="2840" />
-<P1  x="407" y="70" id="3149" />
-<P2  x="407" y="95" id="2934" />
+<infoparam name="connector from CPU1 to Bus0" value="{info}" />
+<P1  x="221" y="294" id="1831" />
+<P2  x="277" y="295" id="1762" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2839" >
-<father id="2841" num="0" />
-<cdparam x="407" y="110" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2835" />
-<TGConnectingPoint num="1" id="2836" />
-<TGConnectingPoint num="2" id="2837" />
-<TGConnectingPoint num="3" id="2838" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2848" >
-<cdparam x="407" y="127" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="2847" />
-<P1  x="407" y="127" id="2939" />
-<P2  x="407" y="153" id="2922" />
+</CONNECTOR>
+<CONNECTOR type="125" id="1906" >
+<cdparam x="662" y="310" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU2 to Bus0" value="{info}" />
+<P1  x="574" y="294" id="1796" />
+<P2  x="527" y="295" id="1763" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2846" >
-<father id="2848" num="0" />
-<cdparam x="428" y="145" />
-<sizeparam width="120" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2842" />
-<TGConnectingPoint num="1" id="2843" />
-<TGConnectingPoint num="2" id="2844" />
-<TGConnectingPoint num="3" id="2845" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="m.data = pubK.data" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="2855" >
-<cdparam x="407" y="183" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="2854" />
-<P1  x="407" y="183" id="2923" />
-<P2  x="408" y="213" id="2882" />
+</CONNECTOR>
+<CONNECTOR type="125" id="1907" >
+<cdparam x="388" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU0 to Bus0" value="{info}" />
+<P1  x="403" y="226" id="1885" />
+<P2  x="402" y="270" id="1760" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2853" >
-<father id="2855" num="0" />
-<cdparam x="408" y="199" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2849" />
-<TGConnectingPoint num="1" id="2850" />
-<TGConnectingPoint num="2" id="2851" />
-<TGConnectingPoint num="3" id="2852" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
+</CONNECTOR>
 
-<CONNECTOR type="5102" id="2862" >
-<cdparam x="409" y="265" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="2861" />
-<P1  x="408" y="251" id="2887" />
-<P2  x="406" y="285" id="2870" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2860" >
-<father id="2862" num="0" />
-<cdparam x="409" y="281" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Mapping2_Sec" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1102" id="1932" >
+<cdparam x="17" y="403" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2856" />
-<TGConnectingPoint num="1" id="2857" />
-<TGConnectingPoint num="2" id="2858" />
-<TGConnectingPoint num="3" id="2859" />
+<infoparam name="SecureBus1" value="name" />
+<TGConnectingPoint num="0" id="1908" />
+<TGConnectingPoint num="1" id="1909" />
+<TGConnectingPoint num="2" id="1910" />
+<TGConnectingPoint num="3" id="1911" />
+<TGConnectingPoint num="4" id="1912" />
+<TGConnectingPoint num="5" id="1913" />
+<TGConnectingPoint num="6" id="1914" />
+<TGConnectingPoint num="7" id="1915" />
+<TGConnectingPoint num="8" id="1916" />
+<TGConnectingPoint num="9" id="1917" />
+<TGConnectingPoint num="10" id="1918" />
+<TGConnectingPoint num="11" id="1919" />
+<TGConnectingPoint num="12" id="1920" />
+<TGConnectingPoint num="13" id="1921" />
+<TGConnectingPoint num="14" id="1922" />
+<TGConnectingPoint num="15" id="1923" />
+<TGConnectingPoint num="16" id="1924" />
+<TGConnectingPoint num="17" id="1925" />
+<TGConnectingPoint num="18" id="1926" />
+<TGConnectingPoint num="19" id="1927" />
+<TGConnectingPoint num="20" id="1928" />
+<TGConnectingPoint num="21" id="1929" />
+<TGConnectingPoint num="22" id="1930" />
+<TGConnectingPoint num="23" id="1931" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info stereotype="BUS-RR" nodeName="SecureBus1" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="2869" >
-<cdparam x="410" y="327" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="2868" />
-<P1  x="406" y="315" id="2871" />
-<P2  x="408" y="354" id="3109" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="2867" >
-<father id="2869" num="0" />
-<cdparam x="426" y="337" />
-<sizeparam width="145" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="1957" >
+<cdparam x="55" y="511" />
+<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="2863" />
-<TGConnectingPoint num="1" id="2864" />
-<TGConnectingPoint num="2" id="2865" />
-<TGConnectingPoint num="3" id="2866" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="alicePubK.data = m.data" />
-</extraparam>
-</SUBCOMPONENT>
-
-<COMPONENT type="5104" id="2880" >
-<cdparam x="376" y="290" />
-<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Receive signal" value="chin(m)" />
-<TGConnectingPoint num="0" id="2870" />
-<TGConnectingPoint num="1" id="2871" />
-<TGConnectingPoint num="2" id="2872" />
-<TGConnectingPoint num="3" id="2873" />
-<TGConnectingPoint num="4" id="2874" />
-<TGConnectingPoint num="5" id="2875" />
-<TGConnectingPoint num="6" id="2876" />
-<TGConnectingPoint num="7" id="2877" />
-<TGConnectingPoint num="8" id="2878" />
-<TGConnectingPoint num="9" id="2879" />
+<infoparam name="secureMem1" value="name" />
+<TGConnectingPoint num="0" id="1933" />
+<TGConnectingPoint num="1" id="1934" />
+<TGConnectingPoint num="2" id="1935" />
+<TGConnectingPoint num="3" id="1936" />
+<TGConnectingPoint num="4" id="1937" />
+<TGConnectingPoint num="5" id="1938" />
+<TGConnectingPoint num="6" id="1939" />
+<TGConnectingPoint num="7" id="1940" />
+<TGConnectingPoint num="8" id="1941" />
+<TGConnectingPoint num="9" id="1942" />
+<TGConnectingPoint num="10" id="1943" />
+<TGConnectingPoint num="11" id="1944" />
+<TGConnectingPoint num="12" id="1945" />
+<TGConnectingPoint num="13" id="1946" />
+<TGConnectingPoint num="14" id="1947" />
+<TGConnectingPoint num="15" id="1948" />
+<TGConnectingPoint num="16" id="1949" />
+<TGConnectingPoint num="17" id="1950" />
+<TGConnectingPoint num="18" id="1951" />
+<TGConnectingPoint num="19" id="1952" />
+<TGConnectingPoint num="20" id="1953" />
+<TGConnectingPoint num="21" id="1954" />
+<TGConnectingPoint num="22" id="1955" />
+<TGConnectingPoint num="23" id="1956" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="secureMem1" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="2921" >
-<cdparam x="347" y="213" />
-<sizeparam width="123" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="1982" >
+<cdparam x="309" y="358" />
+<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="State" value="receivingPubK" />
-<TGConnectingPoint num="0" id="2881" />
-<TGConnectingPoint num="1" id="2882" />
-<TGConnectingPoint num="2" id="2883" />
-<TGConnectingPoint num="3" id="2884" />
-<TGConnectingPoint num="4" id="2885" />
-<TGConnectingPoint num="5" id="2886" />
-<TGConnectingPoint num="6" id="2887" />
-<TGConnectingPoint num="7" id="2888" />
-<TGConnectingPoint num="8" id="2889" />
-<TGConnectingPoint num="9" id="2890" />
-<TGConnectingPoint num="10" id="2891" />
-<TGConnectingPoint num="11" id="2892" />
-<TGConnectingPoint num="12" id="2893" />
-<TGConnectingPoint num="13" id="2894" />
-<TGConnectingPoint num="14" id="2895" />
-<TGConnectingPoint num="15" id="2896" />
-<TGConnectingPoint num="16" id="2897" />
-<TGConnectingPoint num="17" id="2898" />
-<TGConnectingPoint num="18" id="2899" />
-<TGConnectingPoint num="19" id="2900" />
-<TGConnectingPoint num="20" id="2901" />
-<TGConnectingPoint num="21" id="2902" />
-<TGConnectingPoint num="22" id="2903" />
-<TGConnectingPoint num="23" id="2904" />
-<TGConnectingPoint num="24" id="2905" />
-<TGConnectingPoint num="25" id="2906" />
-<TGConnectingPoint num="26" id="2907" />
-<TGConnectingPoint num="27" id="2908" />
-<TGConnectingPoint num="28" id="2909" />
-<TGConnectingPoint num="29" id="2910" />
-<TGConnectingPoint num="30" id="2911" />
-<TGConnectingPoint num="31" id="2912" />
-<TGConnectingPoint num="32" id="2913" />
-<TGConnectingPoint num="33" id="2914" />
-<TGConnectingPoint num="34" id="2915" />
-<TGConnectingPoint num="35" id="2916" />
-<TGConnectingPoint num="36" id="2917" />
-<TGConnectingPoint num="37" id="2918" />
-<TGConnectingPoint num="38" id="2919" />
-<TGConnectingPoint num="39" id="2920" />
+<infoparam name="Memory0" value="name" />
+<TGConnectingPoint num="0" id="1958" />
+<TGConnectingPoint num="1" id="1959" />
+<TGConnectingPoint num="2" id="1960" />
+<TGConnectingPoint num="3" id="1961" />
+<TGConnectingPoint num="4" id="1962" />
+<TGConnectingPoint num="5" id="1963" />
+<TGConnectingPoint num="6" id="1964" />
+<TGConnectingPoint num="7" id="1965" />
+<TGConnectingPoint num="8" id="1966" />
+<TGConnectingPoint num="9" id="1967" />
+<TGConnectingPoint num="10" id="1968" />
+<TGConnectingPoint num="11" id="1969" />
+<TGConnectingPoint num="12" id="1970" />
+<TGConnectingPoint num="13" id="1971" />
+<TGConnectingPoint num="14" id="1972" />
+<TGConnectingPoint num="15" id="1973" />
+<TGConnectingPoint num="16" id="1974" />
+<TGConnectingPoint num="17" id="1975" />
+<TGConnectingPoint num="18" id="1976" />
+<TGConnectingPoint num="19" id="1977" />
+<TGConnectingPoint num="20" id="1978" />
+<TGConnectingPoint num="21" id="1979" />
+<TGConnectingPoint num="22" id="1980" />
+<TGConnectingPoint num="23" id="1981" />
 <extraparam>
+<info stereotype="MEMORY" nodeName="Memory0" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5103" id="2932" >
-<cdparam x="377" y="158" />
-<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1102" id="2007" >
+<cdparam x="278" y="269" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="chout(m)" />
-<TGConnectingPoint num="0" id="2922" />
-<TGConnectingPoint num="1" id="2923" />
-<TGConnectingPoint num="2" id="2924" />
-<TGConnectingPoint num="3" id="2925" />
-<TGConnectingPoint num="4" id="2926" />
-<TGConnectingPoint num="5" id="2927" />
-<TGConnectingPoint num="6" id="2928" />
-<TGConnectingPoint num="7" id="2929" />
-<TGConnectingPoint num="8" id="2930" />
-<TGConnectingPoint num="9" id="2931" />
+<infoparam name="Bus0" value="name" />
+<TGConnectingPoint num="0" id="1983" />
+<TGConnectingPoint num="1" id="1984" />
+<TGConnectingPoint num="2" id="1985" />
+<TGConnectingPoint num="3" id="1986" />
+<TGConnectingPoint num="4" id="1987" />
+<TGConnectingPoint num="5" id="1988" />
+<TGConnectingPoint num="6" id="1989" />
+<TGConnectingPoint num="7" id="1990" />
+<TGConnectingPoint num="8" id="1991" />
+<TGConnectingPoint num="9" id="1992" />
+<TGConnectingPoint num="10" id="1993" />
+<TGConnectingPoint num="11" id="1994" />
+<TGConnectingPoint num="12" id="1995" />
+<TGConnectingPoint num="13" id="1996" />
+<TGConnectingPoint num="14" id="1997" />
+<TGConnectingPoint num="15" id="1998" />
+<TGConnectingPoint num="16" id="1999" />
+<TGConnectingPoint num="17" id="2000" />
+<TGConnectingPoint num="18" id="2001" />
+<TGConnectingPoint num="19" id="2002" />
+<TGConnectingPoint num="20" id="2003" />
+<TGConnectingPoint num="21" id="2004" />
+<TGConnectingPoint num="22" id="2005" />
+<TGConnectingPoint num="23" id="2006" />
+<extraparam>
+<info stereotype="BUS-RR" nodeName="Bus0" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="5"  privacy="0"  referenceAttack="ReadDataFromBus" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="2973" >
-<cdparam x="351" y="95" />
-<sizeparam width="113" height="32" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="2041" >
+<cdparam x="574" y="227" />
+<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="State" value="sendingPubK" />
-<TGConnectingPoint num="0" id="2933" />
-<TGConnectingPoint num="1" id="2934" />
-<TGConnectingPoint num="2" id="2935" />
-<TGConnectingPoint num="3" id="2936" />
-<TGConnectingPoint num="4" id="2937" />
-<TGConnectingPoint num="5" id="2938" />
-<TGConnectingPoint num="6" id="2939" />
-<TGConnectingPoint num="7" id="2940" />
-<TGConnectingPoint num="8" id="2941" />
-<TGConnectingPoint num="9" id="2942" />
-<TGConnectingPoint num="10" id="2943" />
-<TGConnectingPoint num="11" id="2944" />
-<TGConnectingPoint num="12" id="2945" />
-<TGConnectingPoint num="13" id="2946" />
-<TGConnectingPoint num="14" id="2947" />
-<TGConnectingPoint num="15" id="2948" />
-<TGConnectingPoint num="16" id="2949" />
-<TGConnectingPoint num="17" id="2950" />
-<TGConnectingPoint num="18" id="2951" />
-<TGConnectingPoint num="19" id="2952" />
-<TGConnectingPoint num="20" id="2953" />
-<TGConnectingPoint num="21" id="2954" />
-<TGConnectingPoint num="22" id="2955" />
-<TGConnectingPoint num="23" id="2956" />
-<TGConnectingPoint num="24" id="2957" />
-<TGConnectingPoint num="25" id="2958" />
-<TGConnectingPoint num="26" id="2959" />
-<TGConnectingPoint num="27" id="2960" />
-<TGConnectingPoint num="28" id="2961" />
-<TGConnectingPoint num="29" id="2962" />
-<TGConnectingPoint num="30" id="2963" />
-<TGConnectingPoint num="31" id="2964" />
-<TGConnectingPoint num="32" id="2965" />
-<TGConnectingPoint num="33" id="2966" />
-<TGConnectingPoint num="34" id="2967" />
-<TGConnectingPoint num="35" id="2968" />
-<TGConnectingPoint num="36" id="2969" />
-<TGConnectingPoint num="37" id="2970" />
-<TGConnectingPoint num="38" id="2971" />
-<TGConnectingPoint num="39" id="2972" />
+<infoparam name="CPU2" value="name" />
+<TGConnectingPoint num="0" id="2017" />
+<TGConnectingPoint num="1" id="2018" />
+<TGConnectingPoint num="2" id="2019" />
+<TGConnectingPoint num="3" id="2020" />
+<TGConnectingPoint num="4" id="2021" />
+<TGConnectingPoint num="5" id="2022" />
+<TGConnectingPoint num="6" id="2023" />
+<TGConnectingPoint num="7" id="2024" />
+<TGConnectingPoint num="8" id="2025" />
+<TGConnectingPoint num="9" id="2026" />
+<TGConnectingPoint num="10" id="2027" />
+<TGConnectingPoint num="11" id="2028" />
+<TGConnectingPoint num="12" id="2029" />
+<TGConnectingPoint num="13" id="2030" />
+<TGConnectingPoint num="14" id="2031" />
+<TGConnectingPoint num="15" id="2032" />
+<TGConnectingPoint num="16" id="2033" />
+<TGConnectingPoint num="17" id="2034" />
+<TGConnectingPoint num="18" id="2035" />
+<TGConnectingPoint num="19" id="2036" />
+<TGConnectingPoint num="20" id="2037" />
+<TGConnectingPoint num="21" id="2038" />
+<TGConnectingPoint num="22" id="2039" />
+<TGConnectingPoint num="23" id="2040" />
 <extraparam>
+<info stereotype="CPURR" nodeName="CPU2" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="4" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-
-<COMPONENT type="5106" id="3014" >
-<cdparam x="329" y="592" />
-<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="2016" >
+<father id="2041" num="0" />
+<cdparam x="604" y="279" />
+<sizeparam width="109" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="messageDecrypted" />
-<TGConnectingPoint num="0" id="2974" />
-<TGConnectingPoint num="1" id="2975" />
-<TGConnectingPoint num="2" id="2976" />
-<TGConnectingPoint num="3" id="2977" />
-<TGConnectingPoint num="4" id="2978" />
-<TGConnectingPoint num="5" id="2979" />
-<TGConnectingPoint num="6" id="2980" />
-<TGConnectingPoint num="7" id="2981" />
-<TGConnectingPoint num="8" id="2982" />
-<TGConnectingPoint num="9" id="2983" />
-<TGConnectingPoint num="10" id="2984" />
-<TGConnectingPoint num="11" id="2985" />
-<TGConnectingPoint num="12" id="2986" />
-<TGConnectingPoint num="13" id="2987" />
-<TGConnectingPoint num="14" id="2988" />
-<TGConnectingPoint num="15" id="2989" />
-<TGConnectingPoint num="16" id="2990" />
-<TGConnectingPoint num="17" id="2991" />
-<TGConnectingPoint num="18" id="2992" />
-<TGConnectingPoint num="19" id="2993" />
-<TGConnectingPoint num="20" id="2994" />
-<TGConnectingPoint num="21" id="2995" />
-<TGConnectingPoint num="22" id="2996" />
-<TGConnectingPoint num="23" id="2997" />
-<TGConnectingPoint num="24" id="2998" />
-<TGConnectingPoint num="25" id="2999" />
-<TGConnectingPoint num="26" id="3000" />
-<TGConnectingPoint num="27" id="3001" />
-<TGConnectingPoint num="28" id="3002" />
-<TGConnectingPoint num="29" id="3003" />
-<TGConnectingPoint num="30" id="3004" />
-<TGConnectingPoint num="31" id="3005" />
-<TGConnectingPoint num="32" id="3006" />
-<TGConnectingPoint num="33" id="3007" />
-<TGConnectingPoint num="34" id="3008" />
-<TGConnectingPoint num="35" id="3009" />
-<TGConnectingPoint num="36" id="3010" />
-<TGConnectingPoint num="37" id="3011" />
-<TGConnectingPoint num="38" id="3012" />
-<TGConnectingPoint num="39" id="3013" />
+<cdrectangleparam minX="0" maxX="65" minY="0" maxY="95" />
+<infoparam name="TGComponent" value="AppC::Timer" />
+<TGConnectingPoint num="0" id="2008" />
+<TGConnectingPoint num="1" id="2009" />
+<TGConnectingPoint num="2" id="2010" />
+<TGConnectingPoint num="3" id="2011" />
+<TGConnectingPoint num="4" id="2012" />
+<TGConnectingPoint num="5" id="2013" />
+<TGConnectingPoint num="6" id="2014" />
+<TGConnectingPoint num="7" id="2015" />
 <extraparam>
+<info value="AppC::Timer" taskName="Timer" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="5106" id="3055" >
-<cdparam x="352" y="677" />
-<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="SecretDataReceived" />
-<TGConnectingPoint num="0" id="3015" />
-<TGConnectingPoint num="1" id="3016" />
-<TGConnectingPoint num="2" id="3017" />
-<TGConnectingPoint num="3" id="3018" />
-<TGConnectingPoint num="4" id="3019" />
-<TGConnectingPoint num="5" id="3020" />
-<TGConnectingPoint num="6" id="3021" />
-<TGConnectingPoint num="7" id="3022" />
-<TGConnectingPoint num="8" id="3023" />
-<TGConnectingPoint num="9" id="3024" />
-<TGConnectingPoint num="10" id="3025" />
-<TGConnectingPoint num="11" id="3026" />
-<TGConnectingPoint num="12" id="3027" />
-<TGConnectingPoint num="13" id="3028" />
-<TGConnectingPoint num="14" id="3029" />
-<TGConnectingPoint num="15" id="3030" />
-<TGConnectingPoint num="16" id="3031" />
-<TGConnectingPoint num="17" id="3032" />
-<TGConnectingPoint num="18" id="3033" />
-<TGConnectingPoint num="19" id="3034" />
-<TGConnectingPoint num="20" id="3035" />
-<TGConnectingPoint num="21" id="3036" />
-<TGConnectingPoint num="22" id="3037" />
-<TGConnectingPoint num="23" id="3038" />
-<TGConnectingPoint num="24" id="3039" />
-<TGConnectingPoint num="25" id="3040" />
-<TGConnectingPoint num="26" id="3041" />
-<TGConnectingPoint num="27" id="3042" />
-<TGConnectingPoint num="28" id="3043" />
-<TGConnectingPoint num="29" id="3044" />
-<TGConnectingPoint num="30" id="3045" />
-<TGConnectingPoint num="31" id="3046" />
-<TGConnectingPoint num="32" id="3047" />
-<TGConnectingPoint num="33" id="3048" />
-<TGConnectingPoint num="34" id="3049" />
-<TGConnectingPoint num="35" id="3050" />
-<TGConnectingPoint num="36" id="3051" />
-<TGConnectingPoint num="37" id="3052" />
-<TGConnectingPoint num="38" id="3053" />
-<TGConnectingPoint num="39" id="3054" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="3096" >
-<cdparam x="338" y="486" />
-<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="messageDecrypt" />
-<TGConnectingPoint num="0" id="3056" />
-<TGConnectingPoint num="1" id="3057" />
-<TGConnectingPoint num="2" id="3058" />
-<TGConnectingPoint num="3" id="3059" />
-<TGConnectingPoint num="4" id="3060" />
-<TGConnectingPoint num="5" id="3061" />
-<TGConnectingPoint num="6" id="3062" />
-<TGConnectingPoint num="7" id="3063" />
-<TGConnectingPoint num="8" id="3064" />
-<TGConnectingPoint num="9" id="3065" />
-<TGConnectingPoint num="10" id="3066" />
-<TGConnectingPoint num="11" id="3067" />
-<TGConnectingPoint num="12" id="3068" />
-<TGConnectingPoint num="13" id="3069" />
-<TGConnectingPoint num="14" id="3070" />
-<TGConnectingPoint num="15" id="3071" />
-<TGConnectingPoint num="16" id="3072" />
-<TGConnectingPoint num="17" id="3073" />
-<TGConnectingPoint num="18" id="3074" />
-<TGConnectingPoint num="19" id="3075" />
-<TGConnectingPoint num="20" id="3076" />
-<TGConnectingPoint num="21" id="3077" />
-<TGConnectingPoint num="22" id="3078" />
-<TGConnectingPoint num="23" id="3079" />
-<TGConnectingPoint num="24" id="3080" />
-<TGConnectingPoint num="25" id="3081" />
-<TGConnectingPoint num="26" id="3082" />
-<TGConnectingPoint num="27" id="3083" />
-<TGConnectingPoint num="28" id="3084" />
-<TGConnectingPoint num="29" id="3085" />
-<TGConnectingPoint num="30" id="3086" />
-<TGConnectingPoint num="31" id="3087" />
-<TGConnectingPoint num="32" id="3088" />
-<TGConnectingPoint num="33" id="3089" />
-<TGConnectingPoint num="34" id="3090" />
-<TGConnectingPoint num="35" id="3091" />
-<TGConnectingPoint num="36" id="3092" />
-<TGConnectingPoint num="37" id="3093" />
-<TGConnectingPoint num="38" id="3094" />
-<TGConnectingPoint num="39" id="3095" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5104" id="3107" >
-<cdparam x="374" y="429" />
-<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="chin(m2)" />
-<TGConnectingPoint num="0" id="3097" />
-<TGConnectingPoint num="1" id="3098" />
-<TGConnectingPoint num="2" id="3099" />
-<TGConnectingPoint num="3" id="3100" />
-<TGConnectingPoint num="4" id="3101" />
-<TGConnectingPoint num="5" id="3102" />
-<TGConnectingPoint num="6" id="3103" />
-<TGConnectingPoint num="7" id="3104" />
-<TGConnectingPoint num="8" id="3105" />
-<TGConnectingPoint num="9" id="3106" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="3148" >
-<cdparam x="342" y="354" />
-<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="waitingForMessage" />
-<TGConnectingPoint num="0" id="3108" />
-<TGConnectingPoint num="1" id="3109" />
-<TGConnectingPoint num="2" id="3110" />
-<TGConnectingPoint num="3" id="3111" />
-<TGConnectingPoint num="4" id="3112" />
-<TGConnectingPoint num="5" id="3113" />
-<TGConnectingPoint num="6" id="3114" />
-<TGConnectingPoint num="7" id="3115" />
-<TGConnectingPoint num="8" id="3116" />
-<TGConnectingPoint num="9" id="3117" />
-<TGConnectingPoint num="10" id="3118" />
-<TGConnectingPoint num="11" id="3119" />
-<TGConnectingPoint num="12" id="3120" />
-<TGConnectingPoint num="13" id="3121" />
-<TGConnectingPoint num="14" id="3122" />
-<TGConnectingPoint num="15" id="3123" />
-<TGConnectingPoint num="16" id="3124" />
-<TGConnectingPoint num="17" id="3125" />
-<TGConnectingPoint num="18" id="3126" />
-<TGConnectingPoint num="19" id="3127" />
-<TGConnectingPoint num="20" id="3128" />
-<TGConnectingPoint num="21" id="3129" />
-<TGConnectingPoint num="22" id="3130" />
-<TGConnectingPoint num="23" id="3131" />
-<TGConnectingPoint num="24" id="3132" />
-<TGConnectingPoint num="25" id="3133" />
-<TGConnectingPoint num="26" id="3134" />
-<TGConnectingPoint num="27" id="3135" />
-<TGConnectingPoint num="28" id="3136" />
-<TGConnectingPoint num="29" id="3137" />
-<TGConnectingPoint num="30" id="3138" />
-<TGConnectingPoint num="31" id="3139" />
-<TGConnectingPoint num="32" id="3140" />
-<TGConnectingPoint num="33" id="3141" />
-<TGConnectingPoint num="34" id="3142" />
-<TGConnectingPoint num="35" id="3143" />
-<TGConnectingPoint num="36" id="3144" />
-<TGConnectingPoint num="37" id="3145" />
-<TGConnectingPoint num="38" id="3146" />
-<TGConnectingPoint num="39" id="3147" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5100" id="3150" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="2075" >
+<cdparam x="56" y="231" />
+<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="3149" />
+<infoparam name="CPU1" value="name" />
+<TGConnectingPoint num="0" id="2051" />
+<TGConnectingPoint num="1" id="2052" />
+<TGConnectingPoint num="2" id="2053" />
+<TGConnectingPoint num="3" id="2054" />
+<TGConnectingPoint num="4" id="2055" />
+<TGConnectingPoint num="5" id="2056" />
+<TGConnectingPoint num="6" id="2057" />
+<TGConnectingPoint num="7" id="2058" />
+<TGConnectingPoint num="8" id="2059" />
+<TGConnectingPoint num="9" id="2060" />
+<TGConnectingPoint num="10" id="2061" />
+<TGConnectingPoint num="11" id="2062" />
+<TGConnectingPoint num="12" id="2063" />
+<TGConnectingPoint num="13" id="2064" />
+<TGConnectingPoint num="14" id="2065" />
+<TGConnectingPoint num="15" id="2066" />
+<TGConnectingPoint num="16" id="2067" />
+<TGConnectingPoint num="17" id="2068" />
+<TGConnectingPoint num="18" id="2069" />
+<TGConnectingPoint num="19" id="2070" />
+<TGConnectingPoint num="20" id="2071" />
+<TGConnectingPoint num="21" id="2072" />
+<TGConnectingPoint num="22" id="2073" />
+<TGConnectingPoint num="23" id="2074" />
+<extraparam>
+<info stereotype="CPURR" nodeName="CPU1" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="2" MECType="0" encryption="0"/>
+</extraparam>
 </COMPONENT>
-
-
-</AVATARStateMachineDiagramPanel>
-
-<AVATARStateMachineDiagramPanel name="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="3157" >
-<cdparam x="411" y="567" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="3156" />
-<P1  x="411" y="567" id="3360" />
-<P2  x="420" y="613" id="3319" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3155" >
-<father id="3157" num="0" />
-<cdparam x="453" y="610" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="2050" >
+<father id="2075" num="0" />
+<cdparam x="56" y="276" />
+<sizeparam width="163" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3151" />
-<TGConnectingPoint num="1" id="3152" />
-<TGConnectingPoint num="2" id="3153" />
-<TGConnectingPoint num="3" id="3154" />
+<cdrectangleparam minX="0" maxX="2" minY="0" maxY="86" />
+<infoparam name="TGComponent" value="AppC::InterfaceDevice" />
+<TGConnectingPoint num="0" id="2042" />
+<TGConnectingPoint num="1" id="2043" />
+<TGConnectingPoint num="2" id="2044" />
+<TGConnectingPoint num="3" id="2045" />
+<TGConnectingPoint num="4" id="2046" />
+<TGConnectingPoint num="5" id="2047" />
+<TGConnectingPoint num="6" id="2048" />
+<TGConnectingPoint num="7" id="2049" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info value="AppC::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="3164" >
-<cdparam x="496" y="703" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="3163" />
-<P1  x="420" y="663" id="3324" />
-<P2  x="438" y="703" id="3370" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3162" >
-<father id="3164" num="0" />
-<cdparam x="453" y="697" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="2127" >
+<cdparam x="267" y="59" />
+<sizeparam width="272" height="167" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3158" />
-<TGConnectingPoint num="1" id="3159" />
-<TGConnectingPoint num="2" id="3160" />
-<TGConnectingPoint num="3" id="3161" />
+<infoparam name="CPU0" value="name" />
+<TGConnectingPoint num="0" id="2103" />
+<TGConnectingPoint num="1" id="2104" />
+<TGConnectingPoint num="2" id="2105" />
+<TGConnectingPoint num="3" id="2106" />
+<TGConnectingPoint num="4" id="2107" />
+<TGConnectingPoint num="5" id="2108" />
+<TGConnectingPoint num="6" id="2109" />
+<TGConnectingPoint num="7" id="2110" />
+<TGConnectingPoint num="8" id="2111" />
+<TGConnectingPoint num="9" id="2112" />
+<TGConnectingPoint num="10" id="2113" />
+<TGConnectingPoint num="11" id="2114" />
+<TGConnectingPoint num="12" id="2115" />
+<TGConnectingPoint num="13" id="2116" />
+<TGConnectingPoint num="14" id="2117" />
+<TGConnectingPoint num="15" id="2118" />
+<TGConnectingPoint num="16" id="2119" />
+<TGConnectingPoint num="17" id="2120" />
+<TGConnectingPoint num="18" id="2121" />
+<TGConnectingPoint num="19" id="2122" />
+<TGConnectingPoint num="20" id="2123" />
+<TGConnectingPoint num="21" id="2124" />
+<TGConnectingPoint num="22" id="2125" />
+<TGConnectingPoint num="23" id="2126" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info stereotype="CPURR" nodeName="CPU0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/>
 </extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="3171" >
-<cdparam x="411" y="508" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to stop state" value="null" />
-<TGConnectingPoint num="0" id="3170" />
-<P1  x="411" y="508" id="3378" />
-<P2  x="411" y="537" id="3359" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3169" >
-<father id="3171" num="0" />
-<cdparam x="411" y="548" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+<SUBCOMPONENT type="1101" id="2084" >
+<father id="2127" num="0" />
+<cdparam x="277" y="90" />
+<sizeparam width="108" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3165" />
-<TGConnectingPoint num="1" id="3166" />
-<TGConnectingPoint num="2" id="3167" />
-<TGConnectingPoint num="3" id="3168" />
+<cdrectangleparam minX="0" maxX="164" minY="0" maxY="127" />
+<infoparam name="TGComponent" value="AppC::TCPIP" />
+<TGConnectingPoint num="0" id="2076" />
+<TGConnectingPoint num="1" id="2077" />
+<TGConnectingPoint num="2" id="2078" />
+<TGConnectingPoint num="3" id="2079" />
+<TGConnectingPoint num="4" id="2080" />
+<TGConnectingPoint num="5" id="2081" />
+<TGConnectingPoint num="6" id="2082" />
+<TGConnectingPoint num="7" id="2083" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info value="AppC::TCPIP" taskName="TCPIP" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="3178" >
-<cdparam x="411" y="389" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to state0" value="null" />
-<TGConnectingPoint num="0" id="3177" />
-<P1  x="411" y="389" id="3419" />
-<P2  x="411" y="468" id="3373" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3176" >
-<father id="3178" num="0" />
-<cdparam x="439" y="414" />
-<sizeparam width="148" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="2093" >
+<father id="2127" num="1" />
+<cdparam x="293" y="165" />
+<sizeparam width="139" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3172" />
-<TGConnectingPoint num="1" id="3173" />
-<TGConnectingPoint num="2" id="3174" />
-<TGConnectingPoint num="3" id="3175" />
+<cdrectangleparam minX="0" maxX="133" minY="0" maxY="127" />
+<infoparam name="TGComponent" value="AppC::Application" />
+<TGConnectingPoint num="0" id="2085" />
+<TGConnectingPoint num="1" id="2086" />
+<TGConnectingPoint num="2" id="2087" />
+<TGConnectingPoint num="3" id="2088" />
+<TGConnectingPoint num="4" id="2089" />
+<TGConnectingPoint num="5" id="2090" />
+<TGConnectingPoint num="6" id="2091" />
+<TGConnectingPoint num="7" id="2092" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="sk = DH(bobPubK, privK)" />
-<actions value="m.data = secretData" />
-<actions value="m1 = sencrypt(m, sk)" />
+<info value="AppC::Application" taskName="Application" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="3185" >
-<cdparam x="407" y="70" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="3184" />
-<P1  x="407" y="70" id="3454" />
-<P2  x="405" y="91" id="3278" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3183" >
-<father id="3185" num="0" />
-<cdparam x="407" y="110" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="2102" >
+<father id="2127" num="2" />
+<cdparam x="392" y="119" />
+<sizeparam width="136" height="37" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3179" />
-<TGConnectingPoint num="1" id="3180" />
-<TGConnectingPoint num="2" id="3181" />
-<TGConnectingPoint num="3" id="3182" />
+<cdrectangleparam minX="0" maxX="136" minY="0" maxY="130" />
+<infoparam name="TGComponent" value="AppC::SmartCard" />
+<TGConnectingPoint num="0" id="2094" />
+<TGConnectingPoint num="1" id="2095" />
+<TGConnectingPoint num="2" id="2096" />
+<TGConnectingPoint num="3" id="2097" />
+<TGConnectingPoint num="4" id="2098" />
+<TGConnectingPoint num="5" id="2099" />
+<TGConnectingPoint num="6" id="2100" />
+<TGConnectingPoint num="7" id="2101" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info value="AppC::SmartCard" taskName="SmartCard" referenceTaskName="AppC" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="3192" >
-<cdparam x="392" y="122" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="3191" />
-<P1  x="392" y="122" id="3306" />
-<P2  x="392" y="150" id="3266" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3190" >
-<father id="3192" num="0" />
-<cdparam x="411" y="142" />
-<sizeparam width="120" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1102" id="2152" >
+<cdparam x="630" y="38" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3186" />
-<TGConnectingPoint num="1" id="3187" />
-<TGConnectingPoint num="2" id="3188" />
-<TGConnectingPoint num="3" id="3189" />
+<infoparam name="SecureBus2" value="name" />
+<TGConnectingPoint num="0" id="2128" />
+<TGConnectingPoint num="1" id="2129" />
+<TGConnectingPoint num="2" id="2130" />
+<TGConnectingPoint num="3" id="2131" />
+<TGConnectingPoint num="4" id="2132" />
+<TGConnectingPoint num="5" id="2133" />
+<TGConnectingPoint num="6" id="2134" />
+<TGConnectingPoint num="7" id="2135" />
+<TGConnectingPoint num="8" id="2136" />
+<TGConnectingPoint num="9" id="2137" />
+<TGConnectingPoint num="10" id="2138" />
+<TGConnectingPoint num="11" id="2139" />
+<TGConnectingPoint num="12" id="2140" />
+<TGConnectingPoint num="13" id="2141" />
+<TGConnectingPoint num="14" id="2142" />
+<TGConnectingPoint num="15" id="2143" />
+<TGConnectingPoint num="16" id="2144" />
+<TGConnectingPoint num="17" id="2145" />
+<TGConnectingPoint num="18" id="2146" />
+<TGConnectingPoint num="19" id="2147" />
+<TGConnectingPoint num="20" id="2148" />
+<TGConnectingPoint num="21" id="2149" />
+<TGConnectingPoint num="22" id="2150" />
+<TGConnectingPoint num="23" id="2151" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="m.data = pubK.data" />
+<info stereotype="BUS-RR" nodeName="SecureBus2" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="3199" >
-<cdparam x="391" y="166" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="3198" />
-<P1  x="392" y="180" id="3267" />
-<P2  x="380" y="224" id="3242" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3197" >
-<father id="3199" num="0" />
-<cdparam x="390" y="188" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="2177" >
+<cdparam x="780" y="123" />
+<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3193" />
-<TGConnectingPoint num="1" id="3194" />
-<TGConnectingPoint num="2" id="3195" />
-<TGConnectingPoint num="3" id="3196" />
+<infoparam name="secureMem2" value="name" />
+<TGConnectingPoint num="0" id="2153" />
+<TGConnectingPoint num="1" id="2154" />
+<TGConnectingPoint num="2" id="2155" />
+<TGConnectingPoint num="3" id="2156" />
+<TGConnectingPoint num="4" id="2157" />
+<TGConnectingPoint num="5" id="2158" />
+<TGConnectingPoint num="6" id="2159" />
+<TGConnectingPoint num="7" id="2160" />
+<TGConnectingPoint num="8" id="2161" />
+<TGConnectingPoint num="9" id="2162" />
+<TGConnectingPoint num="10" id="2163" />
+<TGConnectingPoint num="11" id="2164" />
+<TGConnectingPoint num="12" id="2165" />
+<TGConnectingPoint num="13" id="2166" />
+<TGConnectingPoint num="14" id="2167" />
+<TGConnectingPoint num="15" id="2168" />
+<TGConnectingPoint num="16" id="2169" />
+<TGConnectingPoint num="17" id="2170" />
+<TGConnectingPoint num="18" id="2171" />
+<TGConnectingPoint num="19" id="2172" />
+<TGConnectingPoint num="20" id="2173" />
+<TGConnectingPoint num="21" id="2174" />
+<TGConnectingPoint num="22" id="2175" />
+<TGConnectingPoint num="23" id="2176" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info stereotype="MEMORY" nodeName="secureMem2" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="3206" >
-<cdparam x="380" y="258" />
+<CONNECTOR type="125" id="2178" >
+<cdparam x="539" y="100" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="3205" />
-<P1  x="380" y="258" id="3254" />
-<P2  x="386" y="287" id="3214" />
+<infoparam name="connector" value="{info}" />
+<P1  x="539" y="100" id="2114" />
+<P2  x="630" y="63" id="2131" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3204" >
-<father id="3206" num="0" />
-<cdparam x="377" y="267" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3200" />
-<TGConnectingPoint num="1" id="3201" />
-<TGConnectingPoint num="2" id="3202" />
-<TGConnectingPoint num="3" id="3203" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="3213" >
-<cdparam x="375" y="306" />
+</CONNECTOR>
+<CONNECTOR type="125" id="2179" >
+<cdparam x="143" y="511" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="3212" />
-<P1  x="386" y="317" id="3215" />
-<P2  x="377" y="349" id="3421" />
+<infoparam name="connector" value="{info}" />
+<P1  x="143" y="511" id="1934" />
+<P2  x="142" y="453" id="1914" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3211" >
-<father id="3213" num="0" />
-<cdparam x="396" y="336" />
-<sizeparam width="142" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="3207" />
-<TGConnectingPoint num="1" id="3208" />
-<TGConnectingPoint num="2" id="3209" />
-<TGConnectingPoint num="3" id="3210" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-<actions value="bobPubK.data = m.data" />
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</SUBCOMPONENT>
-
-<COMPONENT type="5104" id="3224" >
-<cdparam x="356" y="292" />
-<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Receive signal" value="chin(m)" />
-<TGConnectingPoint num="0" id="3214" />
-<TGConnectingPoint num="1" id="3215" />
-<TGConnectingPoint num="2" id="3216" />
-<TGConnectingPoint num="3" id="3217" />
-<TGConnectingPoint num="4" id="3218" />
-<TGConnectingPoint num="5" id="3219" />
-<TGConnectingPoint num="6" id="3220" />
-<TGConnectingPoint num="7" id="3221" />
-<TGConnectingPoint num="8" id="3222" />
-<TGConnectingPoint num="9" id="3223" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="3265" >
-<cdparam x="338" y="224" />
-<sizeparam width="114" height="34" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="State" value="receivingPubK" />
-<TGConnectingPoint num="0" id="3225" />
-<TGConnectingPoint num="1" id="3226" />
-<TGConnectingPoint num="2" id="3227" />
-<TGConnectingPoint num="3" id="3228" />
-<TGConnectingPoint num="4" id="3229" />
-<TGConnectingPoint num="5" id="3230" />
-<TGConnectingPoint num="6" id="3231" />
-<TGConnectingPoint num="7" id="3232" />
-<TGConnectingPoint num="8" id="3233" />
-<TGConnectingPoint num="9" id="3234" />
-<TGConnectingPoint num="10" id="3235" />
-<TGConnectingPoint num="11" id="3236" />
-<TGConnectingPoint num="12" id="3237" />
-<TGConnectingPoint num="13" id="3238" />
-<TGConnectingPoint num="14" id="3239" />
-<TGConnectingPoint num="15" id="3240" />
-<TGConnectingPoint num="16" id="3241" />
-<TGConnectingPoint num="17" id="3242" />
-<TGConnectingPoint num="18" id="3243" />
-<TGConnectingPoint num="19" id="3244" />
-<TGConnectingPoint num="20" id="3245" />
-<TGConnectingPoint num="21" id="3246" />
-<TGConnectingPoint num="22" id="3247" />
-<TGConnectingPoint num="23" id="3248" />
-<TGConnectingPoint num="24" id="3249" />
-<TGConnectingPoint num="25" id="3250" />
-<TGConnectingPoint num="26" id="3251" />
-<TGConnectingPoint num="27" id="3252" />
-<TGConnectingPoint num="28" id="3253" />
-<TGConnectingPoint num="29" id="3254" />
-<TGConnectingPoint num="30" id="3255" />
-<TGConnectingPoint num="31" id="3256" />
-<TGConnectingPoint num="32" id="3257" />
-<TGConnectingPoint num="33" id="3258" />
-<TGConnectingPoint num="34" id="3259" />
-<TGConnectingPoint num="35" id="3260" />
-<TGConnectingPoint num="36" id="3261" />
-<TGConnectingPoint num="37" id="3262" />
-<TGConnectingPoint num="38" id="3263" />
-<TGConnectingPoint num="39" id="3264" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5103" id="3276" >
-<cdparam x="362" y="155" />
-<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="chout(m)" />
-<TGConnectingPoint num="0" id="3266" />
-<TGConnectingPoint num="1" id="3267" />
-<TGConnectingPoint num="2" id="3268" />
-<TGConnectingPoint num="3" id="3269" />
-<TGConnectingPoint num="4" id="3270" />
-<TGConnectingPoint num="5" id="3271" />
-<TGConnectingPoint num="6" id="3272" />
-<TGConnectingPoint num="7" id="3273" />
-<TGConnectingPoint num="8" id="3274" />
-<TGConnectingPoint num="9" id="3275" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="3317" >
-<cdparam x="355" y="91" />
-<sizeparam width="100" height="31" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="State" value="sendingPubK" />
-<TGConnectingPoint num="0" id="3277" />
-<TGConnectingPoint num="1" id="3278" />
-<TGConnectingPoint num="2" id="3279" />
-<TGConnectingPoint num="3" id="3280" />
-<TGConnectingPoint num="4" id="3281" />
-<TGConnectingPoint num="5" id="3282" />
-<TGConnectingPoint num="6" id="3283" />
-<TGConnectingPoint num="7" id="3284" />
-<TGConnectingPoint num="8" id="3285" />
-<TGConnectingPoint num="9" id="3286" />
-<TGConnectingPoint num="10" id="3287" />
-<TGConnectingPoint num="11" id="3288" />
-<TGConnectingPoint num="12" id="3289" />
-<TGConnectingPoint num="13" id="3290" />
-<TGConnectingPoint num="14" id="3291" />
-<TGConnectingPoint num="15" id="3292" />
-<TGConnectingPoint num="16" id="3293" />
-<TGConnectingPoint num="17" id="3294" />
-<TGConnectingPoint num="18" id="3295" />
-<TGConnectingPoint num="19" id="3296" />
-<TGConnectingPoint num="20" id="3297" />
-<TGConnectingPoint num="21" id="3298" />
-<TGConnectingPoint num="22" id="3299" />
-<TGConnectingPoint num="23" id="3300" />
-<TGConnectingPoint num="24" id="3301" />
-<TGConnectingPoint num="25" id="3302" />
-<TGConnectingPoint num="26" id="3303" />
-<TGConnectingPoint num="27" id="3304" />
-<TGConnectingPoint num="28" id="3305" />
-<TGConnectingPoint num="29" id="3306" />
-<TGConnectingPoint num="30" id="3307" />
-<TGConnectingPoint num="31" id="3308" />
-<TGConnectingPoint num="32" id="3309" />
-<TGConnectingPoint num="33" id="3310" />
-<TGConnectingPoint num="34" id="3311" />
-<TGConnectingPoint num="35" id="3312" />
-<TGConnectingPoint num="36" id="3313" />
-<TGConnectingPoint num="37" id="3314" />
-<TGConnectingPoint num="38" id="3315" />
-<TGConnectingPoint num="39" id="3316" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="3358" >
-<cdparam x="370" y="613" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="State" value="beforeFinish" />
-<TGConnectingPoint num="0" id="3318" />
-<TGConnectingPoint num="1" id="3319" />
-<TGConnectingPoint num="2" id="3320" />
-<TGConnectingPoint num="3" id="3321" />
-<TGConnectingPoint num="4" id="3322" />
-<TGConnectingPoint num="5" id="3323" />
-<TGConnectingPoint num="6" id="3324" />
-<TGConnectingPoint num="7" id="3325" />
-<TGConnectingPoint num="8" id="3326" />
-<TGConnectingPoint num="9" id="3327" />
-<TGConnectingPoint num="10" id="3328" />
-<TGConnectingPoint num="11" id="3329" />
-<TGConnectingPoint num="12" id="3330" />
-<TGConnectingPoint num="13" id="3331" />
-<TGConnectingPoint num="14" id="3332" />
-<TGConnectingPoint num="15" id="3333" />
-<TGConnectingPoint num="16" id="3334" />
-<TGConnectingPoint num="17" id="3335" />
-<TGConnectingPoint num="18" id="3336" />
-<TGConnectingPoint num="19" id="3337" />
-<TGConnectingPoint num="20" id="3338" />
-<TGConnectingPoint num="21" id="3339" />
-<TGConnectingPoint num="22" id="3340" />
-<TGConnectingPoint num="23" id="3341" />
-<TGConnectingPoint num="24" id="3342" />
-<TGConnectingPoint num="25" id="3343" />
-<TGConnectingPoint num="26" id="3344" />
-<TGConnectingPoint num="27" id="3345" />
-<TGConnectingPoint num="28" id="3346" />
-<TGConnectingPoint num="29" id="3347" />
-<TGConnectingPoint num="30" id="3348" />
-<TGConnectingPoint num="31" id="3349" />
-<TGConnectingPoint num="32" id="3350" />
-<TGConnectingPoint num="33" id="3351" />
-<TGConnectingPoint num="34" id="3352" />
-<TGConnectingPoint num="35" id="3353" />
-<TGConnectingPoint num="36" id="3354" />
-<TGConnectingPoint num="37" id="3355" />
-<TGConnectingPoint num="38" id="3356" />
-<TGConnectingPoint num="39" id="3357" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5103" id="3369" >
-<cdparam x="377" y="542" />
-<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="chout(m1)" />
-<TGConnectingPoint num="0" id="3359" />
-<TGConnectingPoint num="1" id="3360" />
-<TGConnectingPoint num="2" id="3361" />
-<TGConnectingPoint num="3" id="3362" />
-<TGConnectingPoint num="4" id="3363" />
-<TGConnectingPoint num="5" id="3364" />
-<TGConnectingPoint num="6" id="3365" />
-<TGConnectingPoint num="7" id="3366" />
-<TGConnectingPoint num="8" id="3367" />
-<TGConnectingPoint num="9" id="3368" />
-</COMPONENT>
-
-<COMPONENT type="5101" id="3371" >
-<cdparam x="428" y="708" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="3370" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="3412" >
-<cdparam x="340" y="468" />
-<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="sendingMessage" />
-<TGConnectingPoint num="0" id="3372" />
-<TGConnectingPoint num="1" id="3373" />
-<TGConnectingPoint num="2" id="3374" />
-<TGConnectingPoint num="3" id="3375" />
-<TGConnectingPoint num="4" id="3376" />
-<TGConnectingPoint num="5" id="3377" />
-<TGConnectingPoint num="6" id="3378" />
-<TGConnectingPoint num="7" id="3379" />
-<TGConnectingPoint num="8" id="3380" />
-<TGConnectingPoint num="9" id="3381" />
-<TGConnectingPoint num="10" id="3382" />
-<TGConnectingPoint num="11" id="3383" />
-<TGConnectingPoint num="12" id="3384" />
-<TGConnectingPoint num="13" id="3385" />
-<TGConnectingPoint num="14" id="3386" />
-<TGConnectingPoint num="15" id="3387" />
-<TGConnectingPoint num="16" id="3388" />
-<TGConnectingPoint num="17" id="3389" />
-<TGConnectingPoint num="18" id="3390" />
-<TGConnectingPoint num="19" id="3391" />
-<TGConnectingPoint num="20" id="3392" />
-<TGConnectingPoint num="21" id="3393" />
-<TGConnectingPoint num="22" id="3394" />
-<TGConnectingPoint num="23" id="3395" />
-<TGConnectingPoint num="24" id="3396" />
-<TGConnectingPoint num="25" id="3397" />
-<TGConnectingPoint num="26" id="3398" />
-<TGConnectingPoint num="27" id="3399" />
-<TGConnectingPoint num="28" id="3400" />
-<TGConnectingPoint num="29" id="3401" />
-<TGConnectingPoint num="30" id="3402" />
-<TGConnectingPoint num="31" id="3403" />
-<TGConnectingPoint num="32" id="3404" />
-<TGConnectingPoint num="33" id="3405" />
-<TGConnectingPoint num="34" id="3406" />
-<TGConnectingPoint num="35" id="3407" />
-<TGConnectingPoint num="36" id="3408" />
-<TGConnectingPoint num="37" id="3409" />
-<TGConnectingPoint num="38" id="3410" />
-<TGConnectingPoint num="39" id="3411" />
+</CONNECTOR>
+<CONNECTOR type="125" id="2180" >
+<cdparam x="138" y="357" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="138" y="357" id="2057" />
+<P2  x="142" y="403" id="1909" />
+<AutomaticDrawing  data="true" />
 <extraparam>
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</COMPONENT>
-
-<COMPONENT type="5106" id="3453" >
-<cdparam x="344" y="349" />
-<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="makingMessage" />
-<TGConnectingPoint num="0" id="3413" />
-<TGConnectingPoint num="1" id="3414" />
-<TGConnectingPoint num="2" id="3415" />
-<TGConnectingPoint num="3" id="3416" />
-<TGConnectingPoint num="4" id="3417" />
-<TGConnectingPoint num="5" id="3418" />
-<TGConnectingPoint num="6" id="3419" />
-<TGConnectingPoint num="7" id="3420" />
-<TGConnectingPoint num="8" id="3421" />
-<TGConnectingPoint num="9" id="3422" />
-<TGConnectingPoint num="10" id="3423" />
-<TGConnectingPoint num="11" id="3424" />
-<TGConnectingPoint num="12" id="3425" />
-<TGConnectingPoint num="13" id="3426" />
-<TGConnectingPoint num="14" id="3427" />
-<TGConnectingPoint num="15" id="3428" />
-<TGConnectingPoint num="16" id="3429" />
-<TGConnectingPoint num="17" id="3430" />
-<TGConnectingPoint num="18" id="3431" />
-<TGConnectingPoint num="19" id="3432" />
-<TGConnectingPoint num="20" id="3433" />
-<TGConnectingPoint num="21" id="3434" />
-<TGConnectingPoint num="22" id="3435" />
-<TGConnectingPoint num="23" id="3436" />
-<TGConnectingPoint num="24" id="3437" />
-<TGConnectingPoint num="25" id="3438" />
-<TGConnectingPoint num="26" id="3439" />
-<TGConnectingPoint num="27" id="3440" />
-<TGConnectingPoint num="28" id="3441" />
-<TGConnectingPoint num="29" id="3442" />
-<TGConnectingPoint num="30" id="3443" />
-<TGConnectingPoint num="31" id="3444" />
-<TGConnectingPoint num="32" id="3445" />
-<TGConnectingPoint num="33" id="3446" />
-<TGConnectingPoint num="34" id="3447" />
-<TGConnectingPoint num="35" id="3448" />
-<TGConnectingPoint num="36" id="3449" />
-<TGConnectingPoint num="37" id="3450" />
-<TGConnectingPoint num="38" id="3451" />
-<TGConnectingPoint num="39" id="3452" />
+</CONNECTOR>
+<CONNECTOR type="125" id="2181" >
+<cdparam x="402" y="367" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Memory0 to Bus0" value="{info}" />
+<P1  x="403" y="358" id="1959" />
+<P2  x="403" y="319" id="1989" />
+<AutomaticDrawing  data="true" />
 <extraparam>
+<info priority="0" />
+<spy value="false" />
 </extraparam>
-</COMPONENT>
-
-<COMPONENT type="5100" id="3455" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="3454" />
-</COMPONENT>
-
+</CONNECTOR>
+<CONNECTOR type="125" id="2182" >
+<cdparam x="190" y="300" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU1 to Bus0" value="{info}" />
+<P1  x="221" y="294" id="2055" />
+<P2  x="278" y="294" id="1986" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="2183" >
+<cdparam x="662" y="310" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU2 to Bus0" value="{info}" />
+<P1  x="574" y="294" id="2020" />
+<P2  x="528" y="294" id="1987" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="2184" >
+<cdparam x="388" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU0 to Bus0" value="{info}" />
+<P1  x="403" y="226" id="2109" />
+<P2  x="403" y="269" id="1984" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="2185" >
+<cdparam x="812" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="{info}" />
+<P1  x="868" y="123" id="2154" />
+<P2  x="755" y="88" id="2134" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
 
-</AVATARStateMachineDiagramPanel>
+</TMLArchiDiagramPanel>
 
 </Modeling>
 
 
 
 
-<Modeling type="AVATAR Design" nameTab="DHWithCertificateSecurityProtocol" >
+<Modeling type="AVATAR Design" nameTab="BasicSecurityProtocol" >
 <AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
 <MainCode value="void __user_init() {"/>
 <MainCode value="}"/>
@@ -10401,246 +7865,185 @@ On prend b=1 comme exemple
 <Validated value="" />
 <Ignored value="" />
 
-<CONNECTOR type="5002" id="3461" >
+<CONNECTOR type="5002" id="2191" >
 <cdparam x="568" y="220" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block0 to Block0" value="" />
-<TGConnectingPoint num="0" id="3458" />
-<TGConnectingPoint num="1" id="3459" />
-<TGConnectingPoint num="2" id="3460" />
-<P1  x="459" y="106" id="3601" />
-<P2  x="459" y="192" id="3594" />
-<Point x="492" y="119" />
-<Point x="492" y="174" />
+<TGConnectingPoint num="0" id="2188" />
+<TGConnectingPoint num="1" id="2189" />
+<TGConnectingPoint num="2" id="2190" />
+<P1  x="459" y="199" id="2288" />
+<P2  x="459" y="254" id="2281" />
+<Point x="490" y="199" />
+<Point x="490" y="254" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <iso value="in chin(Message msg)" />
 <osd value="out chout(Message msg)" />
 <FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" />
 </extraparam>
-</CONNECTOR><SUBCOMPONENT type="-1" id="3456" >
-<father id="3461" num="0" />
-<cdparam x="492" y="119" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2186" >
+<father id="2191" num="0" />
+<cdparam x="490" y="199" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="3457" >
-<father id="3461" num="1" />
-<cdparam x="492" y="174" />
+<SUBCOMPONENT type="-1" id="2187" >
+<father id="2191" num="1" />
+<cdparam x="490" y="254" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<COMPONENT type="5003" id="3470" >
-<cdparam x="450" y="340" />
-<sizeparam width="200" height="100" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="DataType0" value="Key" />
-<TGConnectingPoint num="0" id="3462" />
-<TGConnectingPoint num="1" id="3463" />
-<TGConnectingPoint num="2" id="3464" />
-<TGConnectingPoint num="3" id="3465" />
-<TGConnectingPoint num="4" id="3466" />
-<TGConnectingPoint num="5" id="3467" />
-<TGConnectingPoint num="6" id="3468" />
-<TGConnectingPoint num="7" id="3469" />
-<extraparam>
-<Attribute access="2" id="data" value="0" type="8" typeOther="" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="5003" id="3479" >
-<cdparam x="50" y="340" />
-<sizeparam width="200" height="100" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="DataType0" value="Message" />
-<TGConnectingPoint num="0" id="3471" />
-<TGConnectingPoint num="1" id="3472" />
-<TGConnectingPoint num="2" id="3473" />
-<TGConnectingPoint num="3" id="3474" />
-<TGConnectingPoint num="4" id="3475" />
-<TGConnectingPoint num="5" id="3476" />
-<TGConnectingPoint num="6" id="3477" />
-<TGConnectingPoint num="7" id="3478" />
-<extraparam>
-<Attribute access="2" id="data" value="0" type="8" typeOther="" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="302" id="3496" >
-<cdparam x="566" y="97" />
-<sizeparam width="565" height="188" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="302" id="2208" >
+<cdparam x="519" y="154" />
+<sizeparam width="520" height="97" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK
-#PrivatePublicKeys SmartCard privK pubK
-#PrivatePublicKeys CA privK pubK
-#InitialSystemKnowledge SmartCard.interfaceDeviceID CA.interfaceDeviceID
-#InitialSystemKnowledge InterfaceDevice.smartCardID CA.smartCardID
-#InitialSystemKnowledge InterfaceDevice.pubK CA.interfaceDevicePubK
-#InitialSystemKnowledge SmartCard.pubK CA.smartCardPubK
-#InitialSystemKnowledge CA.pubK SmartCard.CAPubK InterfaceDevice.CAPubK
+<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge InterfaceDevice.sk SmartCard.sk
 
 #Confidentiality InterfaceDevice.secretData
 #Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m
 " />
-<TGConnectingPoint num="0" id="3480" />
-<TGConnectingPoint num="1" id="3481" />
-<TGConnectingPoint num="2" id="3482" />
-<TGConnectingPoint num="3" id="3483" />
-<TGConnectingPoint num="4" id="3484" />
-<TGConnectingPoint num="5" id="3485" />
-<TGConnectingPoint num="6" id="3486" />
-<TGConnectingPoint num="7" id="3487" />
-<TGConnectingPoint num="8" id="3488" />
-<TGConnectingPoint num="9" id="3489" />
-<TGConnectingPoint num="10" id="3490" />
-<TGConnectingPoint num="11" id="3491" />
-<TGConnectingPoint num="12" id="3492" />
-<TGConnectingPoint num="13" id="3493" />
-<TGConnectingPoint num="14" id="3494" />
-<TGConnectingPoint num="15" id="3495" />
+<TGConnectingPoint num="0" id="2192" />
+<TGConnectingPoint num="1" id="2193" />
+<TGConnectingPoint num="2" id="2194" />
+<TGConnectingPoint num="3" id="2195" />
+<TGConnectingPoint num="4" id="2196" />
+<TGConnectingPoint num="5" id="2197" />
+<TGConnectingPoint num="6" id="2198" />
+<TGConnectingPoint num="7" id="2199" />
+<TGConnectingPoint num="8" id="2200" />
+<TGConnectingPoint num="9" id="2201" />
+<TGConnectingPoint num="10" id="2202" />
+<TGConnectingPoint num="11" id="2203" />
+<TGConnectingPoint num="12" id="2204" />
+<TGConnectingPoint num="13" id="2205" />
+<TGConnectingPoint num="14" id="2206" />
+<TGConnectingPoint num="15" id="2207" />
 <extraparam>
-<Line value="#PrivatePublicKeys InterfaceDevice privK pubK" />
-<Line value="#PrivatePublicKeys SmartCard privK pubK" />
-<Line value="#PrivatePublicKeys CA privK pubK" />
-<Line value="#InitialSystemKnowledge SmartCard.interfaceDeviceID CA.interfaceDeviceID" />
-<Line value="#InitialSystemKnowledge InterfaceDevice.smartCardID CA.smartCardID" />
-<Line value="#InitialSystemKnowledge InterfaceDevice.pubK CA.interfaceDevicePubK" />
-<Line value="#InitialSystemKnowledge SmartCard.pubK CA.smartCardPubK" />
-<Line value="#InitialSystemKnowledge CA.pubK SmartCard.CAPubK InterfaceDevice.CAPubK" />
+<Line value="#InitialSystemKnowledge InterfaceDevice.sk SmartCard.sk" />
 <Line value="" />
 <Line value="#Confidentiality InterfaceDevice.secretData" />
 <Line value="#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="3505" >
+<COMPONENT type="5003" id="2217" >
 <cdparam x="260" y="373" />
 <sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="DataType0" value="Message" />
-<TGConnectingPoint num="0" id="3497" />
-<TGConnectingPoint num="1" id="3498" />
-<TGConnectingPoint num="2" id="3499" />
-<TGConnectingPoint num="3" id="3500" />
-<TGConnectingPoint num="4" id="3501" />
-<TGConnectingPoint num="5" id="3502" />
-<TGConnectingPoint num="6" id="3503" />
-<TGConnectingPoint num="7" id="3504" />
+<TGConnectingPoint num="0" id="2209" />
+<TGConnectingPoint num="1" id="2210" />
+<TGConnectingPoint num="2" id="2211" />
+<TGConnectingPoint num="3" id="2212" />
+<TGConnectingPoint num="4" id="2213" />
+<TGConnectingPoint num="5" id="2214" />
+<TGConnectingPoint num="6" id="2215" />
+<TGConnectingPoint num="7" id="2216" />
 <extraparam>
 <Attribute access="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5003" id="3514" >
+<COMPONENT type="5003" id="2226" >
 <cdparam x="68" y="372" />
 <sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="DataType0" value="Key" />
-<TGConnectingPoint num="0" id="3506" />
-<TGConnectingPoint num="1" id="3507" />
-<TGConnectingPoint num="2" id="3508" />
-<TGConnectingPoint num="3" id="3509" />
-<TGConnectingPoint num="4" id="3510" />
-<TGConnectingPoint num="5" id="3511" />
-<TGConnectingPoint num="6" id="3512" />
-<TGConnectingPoint num="7" id="3513" />
+<TGConnectingPoint num="0" id="2218" />
+<TGConnectingPoint num="1" id="2219" />
+<TGConnectingPoint num="2" id="2220" />
+<TGConnectingPoint num="3" id="2221" />
+<TGConnectingPoint num="4" id="2222" />
+<TGConnectingPoint num="5" id="2223" />
+<TGConnectingPoint num="6" id="2224" />
+<TGConnectingPoint num="7" id="2225" />
 <extraparam>
 <Attribute access="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5000" id="3614" >
-<cdparam x="21" y="20" />
-<sizeparam width="438" height="344" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5000" id="2301" >
+<cdparam x="21" y="145" />
+<sizeparam width="438" height="219" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Block0" value="System" />
-<TGConnectingPoint num="0" id="3590" />
-<TGConnectingPoint num="1" id="3591" />
-<TGConnectingPoint num="2" id="3592" />
-<TGConnectingPoint num="3" id="3593" />
-<TGConnectingPoint num="4" id="3594" />
-<TGConnectingPoint num="5" id="3595" />
-<TGConnectingPoint num="6" id="3596" />
-<TGConnectingPoint num="7" id="3597" />
-<TGConnectingPoint num="8" id="3598" />
-<TGConnectingPoint num="9" id="3599" />
-<TGConnectingPoint num="10" id="3600" />
-<TGConnectingPoint num="11" id="3601" />
-<TGConnectingPoint num="12" id="3602" />
-<TGConnectingPoint num="13" id="3603" />
-<TGConnectingPoint num="14" id="3604" />
-<TGConnectingPoint num="15" id="3605" />
-<TGConnectingPoint num="16" id="3606" />
-<TGConnectingPoint num="17" id="3607" />
-<TGConnectingPoint num="18" id="3608" />
-<TGConnectingPoint num="19" id="3609" />
-<TGConnectingPoint num="20" id="3610" />
-<TGConnectingPoint num="21" id="3611" />
-<TGConnectingPoint num="22" id="3612" />
-<TGConnectingPoint num="23" id="3613" />
+<TGConnectingPoint num="0" id="2277" />
+<TGConnectingPoint num="1" id="2278" />
+<TGConnectingPoint num="2" id="2279" />
+<TGConnectingPoint num="3" id="2280" />
+<TGConnectingPoint num="4" id="2281" />
+<TGConnectingPoint num="5" id="2282" />
+<TGConnectingPoint num="6" id="2283" />
+<TGConnectingPoint num="7" id="2284" />
+<TGConnectingPoint num="8" id="2285" />
+<TGConnectingPoint num="9" id="2286" />
+<TGConnectingPoint num="10" id="2287" />
+<TGConnectingPoint num="11" id="2288" />
+<TGConnectingPoint num="12" id="2289" />
+<TGConnectingPoint num="13" id="2290" />
+<TGConnectingPoint num="14" id="2291" />
+<TGConnectingPoint num="15" id="2292" />
+<TGConnectingPoint num="16" id="2293" />
+<TGConnectingPoint num="17" id="2294" />
+<TGConnectingPoint num="18" id="2295" />
+<TGConnectingPoint num="19" id="2296" />
+<TGConnectingPoint num="20" id="2297" />
+<TGConnectingPoint num="21" id="2298" />
+<TGConnectingPoint num="22" id="2299" />
+<TGConnectingPoint num="23" id="2300" />
 <extraparam>
 <CryptoBlock value="false" />
 <Signal value="in chin(Message msg)" attached="true" />
 <Signal value="out chout(Message msg)" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5000" id="3539" >
-<father id="3614" num="0" />
-<cdparam x="263" y="108" />
-<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5000" id="2251" >
+<father id="2301" num="0" />
+<cdparam x="36" y="233" />
+<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="299" minY="0" maxY="218" />
-<infoparam name="Block0" value="SmartCard" />
-<TGConnectingPoint num="0" id="3515" />
-<TGConnectingPoint num="1" id="3516" />
-<TGConnectingPoint num="2" id="3517" />
-<TGConnectingPoint num="3" id="3518" />
-<TGConnectingPoint num="4" id="3519" />
-<TGConnectingPoint num="5" id="3520" />
-<TGConnectingPoint num="6" id="3521" />
-<TGConnectingPoint num="7" id="3522" />
-<TGConnectingPoint num="8" id="3523" />
-<TGConnectingPoint num="9" id="3524" />
-<TGConnectingPoint num="10" id="3525" />
-<TGConnectingPoint num="11" id="3526" />
-<TGConnectingPoint num="12" id="3527" />
-<TGConnectingPoint num="13" id="3528" />
-<TGConnectingPoint num="14" id="3529" />
-<TGConnectingPoint num="15" id="3530" />
-<TGConnectingPoint num="16" id="3531" />
-<TGConnectingPoint num="17" id="3532" />
-<TGConnectingPoint num="18" id="3533" />
-<TGConnectingPoint num="19" id="3534" />
-<TGConnectingPoint num="20" id="3535" />
-<TGConnectingPoint num="21" id="3536" />
-<TGConnectingPoint num="22" id="3537" />
-<TGConnectingPoint num="23" id="3538" />
+<cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" />
+<infoparam name="Block0" value="InterfaceDevice" />
+<TGConnectingPoint num="0" id="2227" />
+<TGConnectingPoint num="1" id="2228" />
+<TGConnectingPoint num="2" id="2229" />
+<TGConnectingPoint num="3" id="2230" />
+<TGConnectingPoint num="4" id="2231" />
+<TGConnectingPoint num="5" id="2232" />
+<TGConnectingPoint num="6" id="2233" />
+<TGConnectingPoint num="7" id="2234" />
+<TGConnectingPoint num="8" id="2235" />
+<TGConnectingPoint num="9" id="2236" />
+<TGConnectingPoint num="10" id="2237" />
+<TGConnectingPoint num="11" id="2238" />
+<TGConnectingPoint num="12" id="2239" />
+<TGConnectingPoint num="13" id="2240" />
+<TGConnectingPoint num="14" id="2241" />
+<TGConnectingPoint num="15" id="2242" />
+<TGConnectingPoint num="16" id="2243" />
+<TGConnectingPoint num="17" id="2244" />
+<TGConnectingPoint num="18" id="2245" />
+<TGConnectingPoint num="19" id="2246" />
+<TGConnectingPoint num="20" id="2247" />
+<TGConnectingPoint num="21" id="2248" />
+<TGConnectingPoint num="22" id="2249" />
+<TGConnectingPoint num="23" id="2250" />
 <extraparam>
 <CryptoBlock value="true" />
+<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
 <Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
 <Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sig" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="certOK" value="" type="4" typeOther="" />
-<Attribute access="0" id="interfaceDeviceID" value="" type="8" typeOther="" />
-<Attribute access="0" id="interfaceDevicePubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -10665,51 +8068,43 @@ On prend b=1 comme exemple
 <Method value="Message hash(Message msg)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="3564" >
-<father id="3614" num="1" />
-<cdparam x="36" y="108" />
-<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5000" id="2276" >
+<father id="2301" num="1" />
+<cdparam x="263" y="233" />
+<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="223" minY="0" maxY="218" />
-<infoparam name="Block0" value="InterfaceDevice" />
-<TGConnectingPoint num="0" id="3540" />
-<TGConnectingPoint num="1" id="3541" />
-<TGConnectingPoint num="2" id="3542" />
-<TGConnectingPoint num="3" id="3543" />
-<TGConnectingPoint num="4" id="3544" />
-<TGConnectingPoint num="5" id="3545" />
-<TGConnectingPoint num="6" id="3546" />
-<TGConnectingPoint num="7" id="3547" />
-<TGConnectingPoint num="8" id="3548" />
-<TGConnectingPoint num="9" id="3549" />
-<TGConnectingPoint num="10" id="3550" />
-<TGConnectingPoint num="11" id="3551" />
-<TGConnectingPoint num="12" id="3552" />
-<TGConnectingPoint num="13" id="3553" />
-<TGConnectingPoint num="14" id="3554" />
-<TGConnectingPoint num="15" id="3555" />
-<TGConnectingPoint num="16" id="3556" />
-<TGConnectingPoint num="17" id="3557" />
-<TGConnectingPoint num="18" id="3558" />
-<TGConnectingPoint num="19" id="3559" />
-<TGConnectingPoint num="20" id="3560" />
-<TGConnectingPoint num="21" id="3561" />
-<TGConnectingPoint num="22" id="3562" />
-<TGConnectingPoint num="23" id="3563" />
+<cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" />
+<infoparam name="Block0" value="SmartCard" />
+<TGConnectingPoint num="0" id="2252" />
+<TGConnectingPoint num="1" id="2253" />
+<TGConnectingPoint num="2" id="2254" />
+<TGConnectingPoint num="3" id="2255" />
+<TGConnectingPoint num="4" id="2256" />
+<TGConnectingPoint num="5" id="2257" />
+<TGConnectingPoint num="6" id="2258" />
+<TGConnectingPoint num="7" id="2259" />
+<TGConnectingPoint num="8" id="2260" />
+<TGConnectingPoint num="9" id="2261" />
+<TGConnectingPoint num="10" id="2262" />
+<TGConnectingPoint num="11" id="2263" />
+<TGConnectingPoint num="12" id="2264" />
+<TGConnectingPoint num="13" id="2265" />
+<TGConnectingPoint num="14" id="2266" />
+<TGConnectingPoint num="15" id="2267" />
+<TGConnectingPoint num="16" id="2268" />
+<TGConnectingPoint num="17" id="2269" />
+<TGConnectingPoint num="18" id="2270" />
+<TGConnectingPoint num="19" id="2271" />
+<TGConnectingPoint num="20" id="2272" />
+<TGConnectingPoint num="21" id="2273" />
+<TGConnectingPoint num="22" id="2274" />
+<TGConnectingPoint num="23" id="2275" />
 <extraparam>
 <CryptoBlock value="true" />
-<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
 <Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
 <Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="sig" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="certOK" value="" type="4" typeOther="" />
-<Attribute access="0" id="smartCardID" value="" type="8" typeOther="" />
-<Attribute access="0" id="smartCardPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
 <Method value="Message encrypt(Message msg, Key k)" />
 <Method value="Message decrypt(Message msg, Key k)" />
 <Method value="Message sencrypt(Message msg, Key k)" />
@@ -10734,7595 +8129,10285 @@ On prend b=1 comme exemple
 <Method value="Message hash(Message msg)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5000" id="3589" >
-<father id="3614" num="2" />
-<cdparam x="115" y="249" />
-<sizeparam width="261" height="83" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="177" minY="0" maxY="261" />
-<infoparam name="Block0" value="CA" />
-<TGConnectingPoint num="0" id="3565" />
-<TGConnectingPoint num="1" id="3566" />
-<TGConnectingPoint num="2" id="3567" />
-<TGConnectingPoint num="3" id="3568" />
-<TGConnectingPoint num="4" id="3569" />
-<TGConnectingPoint num="5" id="3570" />
-<TGConnectingPoint num="6" id="3571" />
-<TGConnectingPoint num="7" id="3572" />
-<TGConnectingPoint num="8" id="3573" />
-<TGConnectingPoint num="9" id="3574" />
-<TGConnectingPoint num="10" id="3575" />
-<TGConnectingPoint num="11" id="3576" />
-<TGConnectingPoint num="12" id="3577" />
-<TGConnectingPoint num="13" id="3578" />
-<TGConnectingPoint num="14" id="3579" />
-<TGConnectingPoint num="15" id="3580" />
-<TGConnectingPoint num="16" id="3581" />
-<TGConnectingPoint num="17" id="3582" />
-<TGConnectingPoint num="18" id="3583" />
-<TGConnectingPoint num="19" id="3584" />
-<TGConnectingPoint num="20" id="3585" />
-<TGConnectingPoint num="21" id="3586" />
-<TGConnectingPoint num="22" id="3587" />
-<TGConnectingPoint num="23" id="3588" />
-<extraparam>
-<CryptoBlock value="true" />
-<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="newK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="newCert" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="newID" value="" type="8" typeOther="" />
-<Attribute access="0" id="interfaceDevicePubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="smartCardPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="interfaceDeviceID" value="" type="8" typeOther="" />
-<Attribute access="0" id="smartCardID" value="" type="8" typeOther="" />
-<Method value="Message aencrypt(Message msg, Key k)" />
-<Method value="Message adecrypt(Message msg, Key k)" />
-<Method value="Key pk(Key k)" />
-<Method value="Message sign(Message msg, Key k)" />
-<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
-<Method value="Message cert(Key k, Message msg)" />
-<Method value="bool verifyCert(Message cert, Key k)" />
-<Method value="Key getpk(Message cert)" />
-<Method value="Message sencrypt(Message msg, Key k)" />
-<Method value="Message sdecrypt(Message msg, Key k)" />
-<Method value="Key DH(Key pubK, Key privK)" />
-<Method value="Message hash(Message msg)" />
-<Method value="Message MAC(Message msg, Key k)" />
-<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
-<Method value="Message concat2(Message msg1, Message msg2)" />
-<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
-<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
-<Method value="get2(Message msg, Message msg1, Message msg2)" />
-<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
-<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
-</extraparam>
-</SUBCOMPONENT>
 
 
 </AVATARBlockDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="5100" id="3616" >
+<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="5100" id="2303" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="3615" />
+<TGConnectingPoint num="0" id="2302" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="CA" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="5100" id="3618" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<AVATARStateMachineDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="2310" >
+<cdparam x="416" y="379" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to state0" value="null" />
+<TGConnectingPoint num="0" id="2309" />
+<P1  x="416" y="379" id="2345" />
+<P2  x="420" y="424" id="2381" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2308" >
+<father id="2310" num="0" />
+<cdparam x="431" y="403" />
+<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="3617" />
-</COMPONENT>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2304" />
+<TGConnectingPoint num="1" id="2305" />
+<TGConnectingPoint num="2" id="2306" />
+<TGConnectingPoint num="3" id="2307" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="receivedData = m.data" />
+</extraparam>
+</SUBCOMPONENT>
 
+<CONNECTOR type="5102" id="2317" >
+<cdparam x="407" y="273" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to state0" value="null" />
+<TGConnectingPoint num="0" id="2316" />
+<P1  x="407" y="273" id="2427" />
+<P2  x="416" y="339" id="2340" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2315" >
+<father id="2317" num="0" />
+<cdparam x="419" y="312" />
+<sizeparam width="127" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2311" />
+<TGConnectingPoint num="1" id="2312" />
+<TGConnectingPoint num="2" id="2313" />
+<TGConnectingPoint num="3" id="2314" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="m = sdecrypt(m2, sk)" />
+</extraparam>
+</SUBCOMPONENT>
 
-</AVATARStateMachineDiagramPanel>
+<CONNECTOR type="5102" id="2324" >
+<cdparam x="406" y="201" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to state0" value="null" />
+<TGConnectingPoint num="0" id="2323" />
+<P1  x="406" y="201" id="2463" />
+<P2  x="407" y="233" id="2422" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2322" >
+<father id="2324" num="0" />
+<cdparam x="406" y="241" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2318" />
+<TGConnectingPoint num="1" id="2319" />
+<TGConnectingPoint num="2" id="2320" />
+<TGConnectingPoint num="3" id="2321" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
+</SUBCOMPONENT>
 
-<AVATARStateMachineDiagramPanel name="InterfaceDevice" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="5100" id="3620" >
-<cdparam x="400" y="50" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="2331" >
+<cdparam x="406" y="141" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Send signal" value="null" />
+<TGConnectingPoint num="0" id="2330" />
+<P1  x="406" y="141" id="2479" />
+<P2  x="406" y="171" id="2462" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2329" >
+<father id="2331" num="0" />
+<cdparam x="406" y="181" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="3619" />
-</COMPONENT>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2325" />
+<TGConnectingPoint num="1" id="2326" />
+<TGConnectingPoint num="2" id="2327" />
+<TGConnectingPoint num="3" id="2328" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
+</SUBCOMPONENT>
 
+<CONNECTOR type="5102" id="2338" >
+<cdparam x="407" y="70" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to state0" value="null" />
+<TGConnectingPoint num="0" id="2337" />
+<P1  x="407" y="70" id="2514" />
+<P2  x="406" y="101" id="2474" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2336" >
+<father id="2338" num="0" />
+<cdparam x="407" y="110" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2332" />
+<TGConnectingPoint num="1" id="2333" />
+<TGConnectingPoint num="2" id="2334" />
+<TGConnectingPoint num="3" id="2335" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
+</SUBCOMPONENT>
 
-</AVATARStateMachineDiagramPanel>
+<COMPONENT type="5106" id="2379" >
+<cdparam x="327" y="339" />
+<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="messageDecrypted" />
+<TGConnectingPoint num="0" id="2339" />
+<TGConnectingPoint num="1" id="2340" />
+<TGConnectingPoint num="2" id="2341" />
+<TGConnectingPoint num="3" id="2342" />
+<TGConnectingPoint num="4" id="2343" />
+<TGConnectingPoint num="5" id="2344" />
+<TGConnectingPoint num="6" id="2345" />
+<TGConnectingPoint num="7" id="2346" />
+<TGConnectingPoint num="8" id="2347" />
+<TGConnectingPoint num="9" id="2348" />
+<TGConnectingPoint num="10" id="2349" />
+<TGConnectingPoint num="11" id="2350" />
+<TGConnectingPoint num="12" id="2351" />
+<TGConnectingPoint num="13" id="2352" />
+<TGConnectingPoint num="14" id="2353" />
+<TGConnectingPoint num="15" id="2354" />
+<TGConnectingPoint num="16" id="2355" />
+<TGConnectingPoint num="17" id="2356" />
+<TGConnectingPoint num="18" id="2357" />
+<TGConnectingPoint num="19" id="2358" />
+<TGConnectingPoint num="20" id="2359" />
+<TGConnectingPoint num="21" id="2360" />
+<TGConnectingPoint num="22" id="2361" />
+<TGConnectingPoint num="23" id="2362" />
+<TGConnectingPoint num="24" id="2363" />
+<TGConnectingPoint num="25" id="2364" />
+<TGConnectingPoint num="26" id="2365" />
+<TGConnectingPoint num="27" id="2366" />
+<TGConnectingPoint num="28" id="2367" />
+<TGConnectingPoint num="29" id="2368" />
+<TGConnectingPoint num="30" id="2369" />
+<TGConnectingPoint num="31" id="2370" />
+<TGConnectingPoint num="32" id="2371" />
+<TGConnectingPoint num="33" id="2372" />
+<TGConnectingPoint num="34" id="2373" />
+<TGConnectingPoint num="35" id="2374" />
+<TGConnectingPoint num="36" id="2375" />
+<TGConnectingPoint num="37" id="2376" />
+<TGConnectingPoint num="38" id="2377" />
+<TGConnectingPoint num="39" id="2378" />
+<extraparam>
+</extraparam>
+</COMPONENT>
 
-<AVATARStateMachineDiagramPanel name="SmartCard" minX="10" maxX="2500" minY="10" maxY="1500" >
-<COMPONENT type="5100" id="3622" >
+<COMPONENT type="5106" id="2420" >
+<cdparam x="350" y="424" />
+<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="SecretDataReceived" />
+<TGConnectingPoint num="0" id="2380" />
+<TGConnectingPoint num="1" id="2381" />
+<TGConnectingPoint num="2" id="2382" />
+<TGConnectingPoint num="3" id="2383" />
+<TGConnectingPoint num="4" id="2384" />
+<TGConnectingPoint num="5" id="2385" />
+<TGConnectingPoint num="6" id="2386" />
+<TGConnectingPoint num="7" id="2387" />
+<TGConnectingPoint num="8" id="2388" />
+<TGConnectingPoint num="9" id="2389" />
+<TGConnectingPoint num="10" id="2390" />
+<TGConnectingPoint num="11" id="2391" />
+<TGConnectingPoint num="12" id="2392" />
+<TGConnectingPoint num="13" id="2393" />
+<TGConnectingPoint num="14" id="2394" />
+<TGConnectingPoint num="15" id="2395" />
+<TGConnectingPoint num="16" id="2396" />
+<TGConnectingPoint num="17" id="2397" />
+<TGConnectingPoint num="18" id="2398" />
+<TGConnectingPoint num="19" id="2399" />
+<TGConnectingPoint num="20" id="2400" />
+<TGConnectingPoint num="21" id="2401" />
+<TGConnectingPoint num="22" id="2402" />
+<TGConnectingPoint num="23" id="2403" />
+<TGConnectingPoint num="24" id="2404" />
+<TGConnectingPoint num="25" id="2405" />
+<TGConnectingPoint num="26" id="2406" />
+<TGConnectingPoint num="27" id="2407" />
+<TGConnectingPoint num="28" id="2408" />
+<TGConnectingPoint num="29" id="2409" />
+<TGConnectingPoint num="30" id="2410" />
+<TGConnectingPoint num="31" id="2411" />
+<TGConnectingPoint num="32" id="2412" />
+<TGConnectingPoint num="33" id="2413" />
+<TGConnectingPoint num="34" id="2414" />
+<TGConnectingPoint num="35" id="2415" />
+<TGConnectingPoint num="36" id="2416" />
+<TGConnectingPoint num="37" id="2417" />
+<TGConnectingPoint num="38" id="2418" />
+<TGConnectingPoint num="39" id="2419" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="2461" >
+<cdparam x="336" y="233" />
+<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="messageDecrypt" />
+<TGConnectingPoint num="0" id="2421" />
+<TGConnectingPoint num="1" id="2422" />
+<TGConnectingPoint num="2" id="2423" />
+<TGConnectingPoint num="3" id="2424" />
+<TGConnectingPoint num="4" id="2425" />
+<TGConnectingPoint num="5" id="2426" />
+<TGConnectingPoint num="6" id="2427" />
+<TGConnectingPoint num="7" id="2428" />
+<TGConnectingPoint num="8" id="2429" />
+<TGConnectingPoint num="9" id="2430" />
+<TGConnectingPoint num="10" id="2431" />
+<TGConnectingPoint num="11" id="2432" />
+<TGConnectingPoint num="12" id="2433" />
+<TGConnectingPoint num="13" id="2434" />
+<TGConnectingPoint num="14" id="2435" />
+<TGConnectingPoint num="15" id="2436" />
+<TGConnectingPoint num="16" id="2437" />
+<TGConnectingPoint num="17" id="2438" />
+<TGConnectingPoint num="18" id="2439" />
+<TGConnectingPoint num="19" id="2440" />
+<TGConnectingPoint num="20" id="2441" />
+<TGConnectingPoint num="21" id="2442" />
+<TGConnectingPoint num="22" id="2443" />
+<TGConnectingPoint num="23" id="2444" />
+<TGConnectingPoint num="24" id="2445" />
+<TGConnectingPoint num="25" id="2446" />
+<TGConnectingPoint num="26" id="2447" />
+<TGConnectingPoint num="27" id="2448" />
+<TGConnectingPoint num="28" id="2449" />
+<TGConnectingPoint num="29" id="2450" />
+<TGConnectingPoint num="30" id="2451" />
+<TGConnectingPoint num="31" id="2452" />
+<TGConnectingPoint num="32" id="2453" />
+<TGConnectingPoint num="33" id="2454" />
+<TGConnectingPoint num="34" id="2455" />
+<TGConnectingPoint num="35" id="2456" />
+<TGConnectingPoint num="36" id="2457" />
+<TGConnectingPoint num="37" id="2458" />
+<TGConnectingPoint num="38" id="2459" />
+<TGConnectingPoint num="39" id="2460" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5104" id="2472" >
+<cdparam x="372" y="176" />
+<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="chin(m2)" />
+<TGConnectingPoint num="0" id="2462" />
+<TGConnectingPoint num="1" id="2463" />
+<TGConnectingPoint num="2" id="2464" />
+<TGConnectingPoint num="3" id="2465" />
+<TGConnectingPoint num="4" id="2466" />
+<TGConnectingPoint num="5" id="2467" />
+<TGConnectingPoint num="6" id="2468" />
+<TGConnectingPoint num="7" id="2469" />
+<TGConnectingPoint num="8" id="2470" />
+<TGConnectingPoint num="9" id="2471" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2513" >
+<cdparam x="340" y="101" />
+<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="waitingForMessage" />
+<TGConnectingPoint num="0" id="2473" />
+<TGConnectingPoint num="1" id="2474" />
+<TGConnectingPoint num="2" id="2475" />
+<TGConnectingPoint num="3" id="2476" />
+<TGConnectingPoint num="4" id="2477" />
+<TGConnectingPoint num="5" id="2478" />
+<TGConnectingPoint num="6" id="2479" />
+<TGConnectingPoint num="7" id="2480" />
+<TGConnectingPoint num="8" id="2481" />
+<TGConnectingPoint num="9" id="2482" />
+<TGConnectingPoint num="10" id="2483" />
+<TGConnectingPoint num="11" id="2484" />
+<TGConnectingPoint num="12" id="2485" />
+<TGConnectingPoint num="13" id="2486" />
+<TGConnectingPoint num="14" id="2487" />
+<TGConnectingPoint num="15" id="2488" />
+<TGConnectingPoint num="16" id="2489" />
+<TGConnectingPoint num="17" id="2490" />
+<TGConnectingPoint num="18" id="2491" />
+<TGConnectingPoint num="19" id="2492" />
+<TGConnectingPoint num="20" id="2493" />
+<TGConnectingPoint num="21" id="2494" />
+<TGConnectingPoint num="22" id="2495" />
+<TGConnectingPoint num="23" id="2496" />
+<TGConnectingPoint num="24" id="2497" />
+<TGConnectingPoint num="25" id="2498" />
+<TGConnectingPoint num="26" id="2499" />
+<TGConnectingPoint num="27" id="2500" />
+<TGConnectingPoint num="28" id="2501" />
+<TGConnectingPoint num="29" id="2502" />
+<TGConnectingPoint num="30" id="2503" />
+<TGConnectingPoint num="31" id="2504" />
+<TGConnectingPoint num="32" id="2505" />
+<TGConnectingPoint num="33" id="2506" />
+<TGConnectingPoint num="34" id="2507" />
+<TGConnectingPoint num="35" id="2508" />
+<TGConnectingPoint num="36" id="2509" />
+<TGConnectingPoint num="37" id="2510" />
+<TGConnectingPoint num="38" id="2511" />
+<TGConnectingPoint num="39" id="2512" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="2515" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="3621" />
+<TGConnectingPoint num="0" id="2514" />
 </COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
-</Modeling>
-
-
-
-
-<Modeling type="Sysmlsec Methodology" nameTab="SysMLSec_Methodology" >
-<SysmlsecMethodologyDiagramPanel name="SysMLSec_Methodology" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
-<COMPONENT type="5705" id="3627" >
-<cdparam x="650" y="500" />
-<sizeparam width="180" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<AVATARStateMachineDiagramPanel name="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="2522" >
+<cdparam x="407" y="310" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2521" />
+<P1  x="407" y="310" id="2593" />
+<P2  x="416" y="356" id="2552" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2520" >
+<father id="2522" num="0" />
+<cdparam x="449" y="353" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Properties" />
-<TGConnectingPoint num="0" id="3623" />
-<TGConnectingPoint num="1" id="3624" />
-<TGConnectingPoint num="2" id="3625" />
-<TGConnectingPoint num="3" id="3626" />
-</COMPONENT>
-
-<COMPONENT type="5706" id="3632" >
-<cdparam x="1100" y="600" />
-<sizeparam width="200" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Prototyping" />
-<TGConnectingPoint num="0" id="3628" />
-<TGConnectingPoint num="1" id="3629" />
-<TGConnectingPoint num="2" id="3630" />
-<TGConnectingPoint num="3" id="3631" />
-</COMPONENT>
-
-<COMPONENT type="5704" id="3641" >
-<cdparam x="1000" y="500" />
-<sizeparam width="341" height="86" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Design" />
-<TGConnectingPoint num="0" id="3636" />
-<TGConnectingPoint num="1" id="3637" />
-<TGConnectingPoint num="2" id="3638" />
-<TGConnectingPoint num="3" id="3639" />
-<TGConnectingPoint num="4" id="3640" />
-</COMPONENT>
-<SUBCOMPONENT type="5707" id="3633" >
-<father id="3641" num="0" />
-<cdparam x="1005" y="540" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="1005" maxX="1005" minY="540" maxY="540" />
-<infoparam name="value " value="BasicSecurityProtocol" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5707" id="3634" >
-<father id="3641" num="1" />
-<cdparam x="1005" y="555" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="1005" maxX="1005" minY="555" maxY="555" />
-<infoparam name="value " value="DHSecurityProtocol" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5707" id="3635" >
-<father id="3641" num="2" />
-<cdparam x="1005" y="570" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="1005" maxX="1005" minY="570" maxY="570" />
-<infoparam name="value " value="DHWithCertificateSecurityProtocol" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2516" />
+<TGConnectingPoint num="1" id="2517" />
+<TGConnectingPoint num="2" id="2518" />
+<TGConnectingPoint num="3" id="2519" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5703" id="3647" >
-<cdparam x="900" y="400" />
-<sizeparam width="200" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Analysis" />
-<TGConnectingPoint num="0" id="3642" />
-<TGConnectingPoint num="1" id="3643" />
-<TGConnectingPoint num="2" id="3644" />
-<TGConnectingPoint num="3" id="3645" />
-<TGConnectingPoint num="4" id="3646" />
-</COMPONENT>
-
-<COMPONENT type="5711" id="3652" >
-<cdparam x="887" y="100" />
-<sizeparam width="227" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Communication pattern" />
-<TGConnectingPoint num="0" id="3648" />
-<TGConnectingPoint num="1" id="3649" />
-<TGConnectingPoint num="2" id="3650" />
-<TGConnectingPoint num="3" id="3651" />
-</COMPONENT>
-
-<COMPONENT type="5710" id="3662" >
-<cdparam x="708" y="207" />
-<sizeparam width="469" height="91" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Mapping" />
-<TGConnectingPoint num="0" id="3656" />
-<TGConnectingPoint num="1" id="3657" />
-<TGConnectingPoint num="2" id="3658" />
-<TGConnectingPoint num="3" id="3659" />
-<TGConnectingPoint num="4" id="3660" />
-<TGConnectingPoint num="5" id="3661" />
-</COMPONENT>
-<SUBCOMPONENT type="5707" id="3653" >
-<father id="3662" num="0" />
-<cdparam x="713" y="247" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="905" maxX="905" minY="265" maxY="265" />
-<infoparam name="value " value="Mapping1" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5707" id="3654" >
-<father id="3662" num="1" />
-<cdparam x="713" y="262" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="905" maxX="905" minY="280" maxY="280" />
-<infoparam name="value " value="Mapping2" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5707" id="3655" >
-<father id="3662" num="2" />
-<cdparam x="713" y="277" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="2529" >
+<cdparam x="492" y="446" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2528" />
+<P1  x="416" y="406" id="2557" />
+<P2  x="434" y="446" id="2603" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2527" >
+<father id="2529" num="0" />
+<cdparam x="449" y="440" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="905" maxX="905" minY="295" maxY="295" />
-<infoparam name="value " value="Mapping2_Sec" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2523" />
+<TGConnectingPoint num="1" id="2524" />
+<TGConnectingPoint num="2" id="2525" />
+<TGConnectingPoint num="3" id="2526" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5709" id="3670" >
-<cdparam x="1150" y="100" />
-<sizeparam width="200" height="88" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Architecture view" />
-<TGConnectingPoint num="0" id="3666" />
-<TGConnectingPoint num="1" id="3667" />
-<TGConnectingPoint num="2" id="3668" />
-<TGConnectingPoint num="3" id="3669" />
-</COMPONENT>
-<SUBCOMPONENT type="5707" id="3663" >
-<father id="3670" num="0" />
-<cdparam x="1155" y="140" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="1155" maxX="1155" minY="140" maxY="140" />
-<infoparam name="value " value="Mapping1" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5707" id="3664" >
-<father id="3670" num="1" />
-<cdparam x="1155" y="155" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="1155" maxX="1155" minY="155" maxY="155" />
-<infoparam name="value " value="Mapping2" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5707" id="3665" >
-<father id="3670" num="2" />
-<cdparam x="1155" y="170" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="2536" >
+<cdparam x="407" y="251" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to stop state" value="null" />
+<TGConnectingPoint num="0" id="2535" />
+<P1  x="407" y="251" id="2611" />
+<P2  x="407" y="280" id="2592" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2534" >
+<father id="2536" num="0" />
+<cdparam x="407" y="291" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="1155" maxX="1155" minY="170" maxY="170" />
-<infoparam name="value " value="Mapping2_Sec" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2530" />
+<TGConnectingPoint num="1" id="2531" />
+<TGConnectingPoint num="2" id="2532" />
+<TGConnectingPoint num="3" id="2533" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5713" id="3676" >
-<cdparam x="650" y="97" />
-<sizeparam width="231" height="73" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Functional view" />
-<TGConnectingPoint num="0" id="3672" />
-<TGConnectingPoint num="1" id="3673" />
-<TGConnectingPoint num="2" id="3674" />
-<TGConnectingPoint num="3" id="3675" />
-</COMPONENT>
-<SUBCOMPONENT type="5707" id="3671" >
-<father id="3676" num="0" />
-<cdparam x="655" y="137" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="2543" >
+<cdparam x="407" y="132" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to state0" value="null" />
+<TGConnectingPoint num="0" id="2542" />
+<P1  x="407" y="132" id="2652" />
+<P2  x="407" y="211" id="2606" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2541" >
+<father id="2543" num="0" />
+<cdparam x="414" y="162" />
+<sizeparam width="126" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="655" maxX="655" minY="140" maxY="140" />
-<infoparam name="value " value="AppC" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2537" />
+<TGConnectingPoint num="1" id="2538" />
+<TGConnectingPoint num="2" id="2539" />
+<TGConnectingPoint num="3" id="2540" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="m.data = secretData" />
+<actions value="m1 = sencrypt(m, sk)" />
+</extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5712" id="3683" >
-<cdparam x="350" y="400" />
-<sizeparam width="200" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="2550" >
+<cdparam x="407" y="70" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to state0" value="null" />
+<TGConnectingPoint num="0" id="2549" />
+<P1  x="407" y="70" id="2687" />
+<P2  x="407" y="92" id="2647" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2548" >
+<father id="2550" num="0" />
+<cdparam x="407" y="110" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Attacks" />
-<TGConnectingPoint num="0" id="3678" />
-<TGConnectingPoint num="1" id="3679" />
-<TGConnectingPoint num="2" id="3680" />
-<TGConnectingPoint num="3" id="3681" />
-<TGConnectingPoint num="4" id="3682" />
-</COMPONENT>
-<SUBCOMPONENT type="5707" id="3677" >
-<father id="3683" num="0" />
-<cdparam x="355" y="440" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="355" maxX="355" minY="440" maxY="440" />
-<infoparam name="value " value="Attack Trees" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2544" />
+<TGConnectingPoint num="1" id="2545" />
+<TGConnectingPoint num="2" id="2546" />
+<TGConnectingPoint num="3" id="2547" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5702" id="3691" >
-<cdparam x="350" y="200" />
-<sizeparam width="200" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="2591" >
+<cdparam x="366" y="356" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Requirements" />
-<TGConnectingPoint num="0" id="3685" />
-<TGConnectingPoint num="1" id="3686" />
-<TGConnectingPoint num="2" id="3687" />
-<TGConnectingPoint num="3" id="3688" />
-<TGConnectingPoint num="4" id="3689" />
-<TGConnectingPoint num="5" id="3690" />
-</COMPONENT>
-<SUBCOMPONENT type="5707" id="3684" >
-<father id="3691" num="0" />
-<cdparam x="355" y="240" />
-<sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="355" maxX="355" minY="240" maxY="240" />
-<infoparam name="value " value="Requirements" />
-</SUBCOMPONENT>
-
-<COMPONENT type="5701" id="3696" >
-<cdparam x="50" y="300" />
-<sizeparam width="200" height="70" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="beforeFinish" />
+<TGConnectingPoint num="0" id="2551" />
+<TGConnectingPoint num="1" id="2552" />
+<TGConnectingPoint num="2" id="2553" />
+<TGConnectingPoint num="3" id="2554" />
+<TGConnectingPoint num="4" id="2555" />
+<TGConnectingPoint num="5" id="2556" />
+<TGConnectingPoint num="6" id="2557" />
+<TGConnectingPoint num="7" id="2558" />
+<TGConnectingPoint num="8" id="2559" />
+<TGConnectingPoint num="9" id="2560" />
+<TGConnectingPoint num="10" id="2561" />
+<TGConnectingPoint num="11" id="2562" />
+<TGConnectingPoint num="12" id="2563" />
+<TGConnectingPoint num="13" id="2564" />
+<TGConnectingPoint num="14" id="2565" />
+<TGConnectingPoint num="15" id="2566" />
+<TGConnectingPoint num="16" id="2567" />
+<TGConnectingPoint num="17" id="2568" />
+<TGConnectingPoint num="18" id="2569" />
+<TGConnectingPoint num="19" id="2570" />
+<TGConnectingPoint num="20" id="2571" />
+<TGConnectingPoint num="21" id="2572" />
+<TGConnectingPoint num="22" id="2573" />
+<TGConnectingPoint num="23" id="2574" />
+<TGConnectingPoint num="24" id="2575" />
+<TGConnectingPoint num="25" id="2576" />
+<TGConnectingPoint num="26" id="2577" />
+<TGConnectingPoint num="27" id="2578" />
+<TGConnectingPoint num="28" id="2579" />
+<TGConnectingPoint num="29" id="2580" />
+<TGConnectingPoint num="30" id="2581" />
+<TGConnectingPoint num="31" id="2582" />
+<TGConnectingPoint num="32" id="2583" />
+<TGConnectingPoint num="33" id="2584" />
+<TGConnectingPoint num="34" id="2585" />
+<TGConnectingPoint num="35" id="2586" />
+<TGConnectingPoint num="36" id="2587" />
+<TGConnectingPoint num="37" id="2588" />
+<TGConnectingPoint num="38" id="2589" />
+<TGConnectingPoint num="39" id="2590" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="2602" >
+<cdparam x="373" y="285" />
+<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="Assumptions" />
-<TGConnectingPoint num="0" id="3692" />
-<TGConnectingPoint num="1" id="3693" />
-<TGConnectingPoint num="2" id="3694" />
-<TGConnectingPoint num="3" id="3695" />
-</COMPONENT>
-
-<COMPONENT type="304" id="3713" >
-<cdparam x="631" y="68" />
-<sizeparam width="750" height="250" minWidth="20" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="chout(m1)" />
+<TGConnectingPoint num="0" id="2592" />
+<TGConnectingPoint num="1" id="2593" />
+<TGConnectingPoint num="2" id="2594" />
+<TGConnectingPoint num="3" id="2595" />
+<TGConnectingPoint num="4" id="2596" />
+<TGConnectingPoint num="5" id="2597" />
+<TGConnectingPoint num="6" id="2598" />
+<TGConnectingPoint num="7" id="2599" />
+<TGConnectingPoint num="8" id="2600" />
+<TGConnectingPoint num="9" id="2601" />
+</COMPONENT>
+
+<COMPONENT type="5101" id="2604" >
+<cdparam x="424" y="451" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Info" value="SW/HW Partitioning" />
-<TGConnectingPoint num="0" id="3697" />
-<TGConnectingPoint num="1" id="3698" />
-<TGConnectingPoint num="2" id="3699" />
-<TGConnectingPoint num="3" id="3700" />
-<TGConnectingPoint num="4" id="3701" />
-<TGConnectingPoint num="5" id="3702" />
-<TGConnectingPoint num="6" id="3703" />
-<TGConnectingPoint num="7" id="3704" />
-<TGConnectingPoint num="8" id="3705" />
-<TGConnectingPoint num="9" id="3706" />
-<TGConnectingPoint num="10" id="3707" />
-<TGConnectingPoint num="11" id="3708" />
-<TGConnectingPoint num="12" id="3709" />
-<TGConnectingPoint num="13" id="3710" />
-<TGConnectingPoint num="14" id="3711" />
-<TGConnectingPoint num="15" id="3712" />
-<extraparam>
-<TextColor value="-1" />
-<FillColor value="-1" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="2603" />
 </COMPONENT>
 
-<COMPONENT type="304" id="3730" >
-<cdparam x="630" y="375" />
-<sizeparam width="750" height="325" minWidth="20" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="2645" >
+<cdparam x="336" y="211" />
+<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Info" value="SW Design" />
-<TGConnectingPoint num="0" id="3714" />
-<TGConnectingPoint num="1" id="3715" />
-<TGConnectingPoint num="2" id="3716" />
-<TGConnectingPoint num="3" id="3717" />
-<TGConnectingPoint num="4" id="3718" />
-<TGConnectingPoint num="5" id="3719" />
-<TGConnectingPoint num="6" id="3720" />
-<TGConnectingPoint num="7" id="3721" />
-<TGConnectingPoint num="8" id="3722" />
-<TGConnectingPoint num="9" id="3723" />
-<TGConnectingPoint num="10" id="3724" />
-<TGConnectingPoint num="11" id="3725" />
-<TGConnectingPoint num="12" id="3726" />
-<TGConnectingPoint num="13" id="3727" />
-<TGConnectingPoint num="14" id="3728" />
-<TGConnectingPoint num="15" id="3729" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="sendingMessage" />
+<TGConnectingPoint num="0" id="2605" />
+<TGConnectingPoint num="1" id="2606" />
+<TGConnectingPoint num="2" id="2607" />
+<TGConnectingPoint num="3" id="2608" />
+<TGConnectingPoint num="4" id="2609" />
+<TGConnectingPoint num="5" id="2610" />
+<TGConnectingPoint num="6" id="2611" />
+<TGConnectingPoint num="7" id="2612" />
+<TGConnectingPoint num="8" id="2613" />
+<TGConnectingPoint num="9" id="2614" />
+<TGConnectingPoint num="10" id="2615" />
+<TGConnectingPoint num="11" id="2616" />
+<TGConnectingPoint num="12" id="2617" />
+<TGConnectingPoint num="13" id="2618" />
+<TGConnectingPoint num="14" id="2619" />
+<TGConnectingPoint num="15" id="2620" />
+<TGConnectingPoint num="16" id="2621" />
+<TGConnectingPoint num="17" id="2622" />
+<TGConnectingPoint num="18" id="2623" />
+<TGConnectingPoint num="19" id="2624" />
+<TGConnectingPoint num="20" id="2625" />
+<TGConnectingPoint num="21" id="2626" />
+<TGConnectingPoint num="22" id="2627" />
+<TGConnectingPoint num="23" id="2628" />
+<TGConnectingPoint num="24" id="2629" />
+<TGConnectingPoint num="25" id="2630" />
+<TGConnectingPoint num="26" id="2631" />
+<TGConnectingPoint num="27" id="2632" />
+<TGConnectingPoint num="28" id="2633" />
+<TGConnectingPoint num="29" id="2634" />
+<TGConnectingPoint num="30" id="2635" />
+<TGConnectingPoint num="31" id="2636" />
+<TGConnectingPoint num="32" id="2637" />
+<TGConnectingPoint num="33" id="2638" />
+<TGConnectingPoint num="34" id="2639" />
+<TGConnectingPoint num="35" id="2640" />
+<TGConnectingPoint num="36" id="2641" />
+<TGConnectingPoint num="37" id="2642" />
+<TGConnectingPoint num="38" id="2643" />
+<TGConnectingPoint num="39" id="2644" />
 <extraparam>
-<TextColor value="-1" />
-<FillColor value="-1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="304" id="3747" >
-<cdparam x="330" y="169" />
-<sizeparam width="241" height="340" minWidth="20" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="2686" >
+<cdparam x="340" y="92" />
+<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Info" value="Req and attacks" />
-<TGConnectingPoint num="0" id="3731" />
-<TGConnectingPoint num="1" id="3732" />
-<TGConnectingPoint num="2" id="3733" />
-<TGConnectingPoint num="3" id="3734" />
-<TGConnectingPoint num="4" id="3735" />
-<TGConnectingPoint num="5" id="3736" />
-<TGConnectingPoint num="6" id="3737" />
-<TGConnectingPoint num="7" id="3738" />
-<TGConnectingPoint num="8" id="3739" />
-<TGConnectingPoint num="9" id="3740" />
-<TGConnectingPoint num="10" id="3741" />
-<TGConnectingPoint num="11" id="3742" />
-<TGConnectingPoint num="12" id="3743" />
-<TGConnectingPoint num="13" id="3744" />
-<TGConnectingPoint num="14" id="3745" />
-<TGConnectingPoint num="15" id="3746" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="makingMessage" />
+<TGConnectingPoint num="0" id="2646" />
+<TGConnectingPoint num="1" id="2647" />
+<TGConnectingPoint num="2" id="2648" />
+<TGConnectingPoint num="3" id="2649" />
+<TGConnectingPoint num="4" id="2650" />
+<TGConnectingPoint num="5" id="2651" />
+<TGConnectingPoint num="6" id="2652" />
+<TGConnectingPoint num="7" id="2653" />
+<TGConnectingPoint num="8" id="2654" />
+<TGConnectingPoint num="9" id="2655" />
+<TGConnectingPoint num="10" id="2656" />
+<TGConnectingPoint num="11" id="2657" />
+<TGConnectingPoint num="12" id="2658" />
+<TGConnectingPoint num="13" id="2659" />
+<TGConnectingPoint num="14" id="2660" />
+<TGConnectingPoint num="15" id="2661" />
+<TGConnectingPoint num="16" id="2662" />
+<TGConnectingPoint num="17" id="2663" />
+<TGConnectingPoint num="18" id="2664" />
+<TGConnectingPoint num="19" id="2665" />
+<TGConnectingPoint num="20" id="2666" />
+<TGConnectingPoint num="21" id="2667" />
+<TGConnectingPoint num="22" id="2668" />
+<TGConnectingPoint num="23" id="2669" />
+<TGConnectingPoint num="24" id="2670" />
+<TGConnectingPoint num="25" id="2671" />
+<TGConnectingPoint num="26" id="2672" />
+<TGConnectingPoint num="27" id="2673" />
+<TGConnectingPoint num="28" id="2674" />
+<TGConnectingPoint num="29" id="2675" />
+<TGConnectingPoint num="30" id="2676" />
+<TGConnectingPoint num="31" id="2677" />
+<TGConnectingPoint num="32" id="2678" />
+<TGConnectingPoint num="33" id="2679" />
+<TGConnectingPoint num="34" id="2680" />
+<TGConnectingPoint num="35" id="2681" />
+<TGConnectingPoint num="36" id="2682" />
+<TGConnectingPoint num="37" id="2683" />
+<TGConnectingPoint num="38" id="2684" />
+<TGConnectingPoint num="39" id="2685" />
 <extraparam>
-<TextColor value="-1" />
-<FillColor value="-1" />
 </extraparam>
 </COMPONENT>
 
-<CONNECTOR type="6004" id="3749" >
-<cdparam x="1250" y="170" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3748" />
-<P1  x="1250" y="188" id="3666" />
-<P2  x="1036" y="207" id="3657" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="6004" id="3751" >
-<cdparam x="1000" y="170" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3750" />
-<P1  x="1000" y="170" id="3648" />
-<P2  x="942" y="207" id="3658" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="6004" id="3753" >
-<cdparam x="750" y="170" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3752" />
-<P1  x="765" y="170" id="3672" />
-<P2  x="848" y="207" id="3656" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="5718" id="3759" >
-<cdparam x="550" y="235" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3756" />
-<TGConnectingPoint num="1" id="3757" />
-<TGConnectingPoint num="2" id="3758" />
-<P1  x="550" y="235" id="3685" />
-<P2  x="740" y="500" id="3623" />
-<Point x="595" y="235" />
-<Point x="595" y="450" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3754" >
-<father id="3759" num="0" />
-<cdparam x="595" y="235" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="3755" >
-<father id="3759" num="1" />
-<cdparam x="595" y="450" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-
-<CONNECTOR type="5718" id="3763" >
-<cdparam x="1040" y="570" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3761" />
-<TGConnectingPoint num="1" id="3762" />
-<P1  x="1068" y="586" id="3637" />
-<P2  x="1100" y="635" id="3628" />
-<Point x="1060" y="625" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3760" >
-<father id="3763" num="0" />
-<cdparam x="1060" y="625" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-
-<CONNECTOR type="5718" id="3767" >
-<cdparam x="960" y="470" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3765" />
-<TGConnectingPoint num="1" id="3766" />
-<P1  x="960" y="470" id="3643" />
-<P2  x="1000" y="543" id="3636" />
-<Point x="960" y="525" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="3764" >
-<father id="3767" num="0" />
-<cdparam x="960" y="525" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5100" id="2688" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="2687" />
+</COMPONENT>
 
-<CONNECTOR type="5718" id="3769" >
-<cdparam x="470" y="400" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3768" />
-<P1  x="470" y="400" id="3679" />
-<P2  x="470" y="270" id="3687" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="5718" id="3771" >
-<cdparam x="410" y="270" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
-<TGConnectingPoint num="0" id="3770" />
-<P1  x="410" y="270" id="3686" />
-<P2  x="410" y="400" id="3678" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
 
-</SysmlsecMethodologyDiagramPanel>
+</AVATARStateMachineDiagramPanel>
 
 </Modeling>
 
 
 
 
-<Modeling type="TML Architecture" nameTab="Mapping2_Sec_enc" >
-<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
-<COMPONENT type="1102" id="3796" >
-<cdparam x="17" y="403" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="SecureBus1" value="name" />
-<TGConnectingPoint num="0" id="3772" />
-<TGConnectingPoint num="1" id="3773" />
-<TGConnectingPoint num="2" id="3774" />
-<TGConnectingPoint num="3" id="3775" />
-<TGConnectingPoint num="4" id="3776" />
-<TGConnectingPoint num="5" id="3777" />
-<TGConnectingPoint num="6" id="3778" />
-<TGConnectingPoint num="7" id="3779" />
-<TGConnectingPoint num="8" id="3780" />
-<TGConnectingPoint num="9" id="3781" />
-<TGConnectingPoint num="10" id="3782" />
-<TGConnectingPoint num="11" id="3783" />
-<TGConnectingPoint num="12" id="3784" />
-<TGConnectingPoint num="13" id="3785" />
-<TGConnectingPoint num="14" id="3786" />
-<TGConnectingPoint num="15" id="3787" />
-<TGConnectingPoint num="16" id="3788" />
-<TGConnectingPoint num="17" id="3789" />
-<TGConnectingPoint num="18" id="3790" />
-<TGConnectingPoint num="19" id="3791" />
-<TGConnectingPoint num="20" id="3792" />
-<TGConnectingPoint num="21" id="3793" />
-<TGConnectingPoint num="22" id="3794" />
-<TGConnectingPoint num="23" id="3795" />
+<Modeling type="AVATAR Design" nameTab="DHSecurityProtocol" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="2694" >
+<cdparam x="568" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Block0 to Block0" value="" />
+<TGConnectingPoint num="0" id="2691" />
+<TGConnectingPoint num="1" id="2692" />
+<TGConnectingPoint num="2" id="2693" />
+<P1  x="459" y="199" id="2791" />
+<P2  x="459" y="254" id="2784" />
+<Point x="490" y="199" />
+<Point x="490" y="254" />
+<AutomaticDrawing  data="true" />
 <extraparam>
-<info stereotype="BUS-RR" nodeName="SecureBus1" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
+<iso value="in chin(Message msg)" />
+<osd value="out chout(Message msg)" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" />
 </extraparam>
-</COMPONENT>
-
-<COMPONENT type="1105" id="3821" >
-<cdparam x="55" y="511" />
-<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2689" >
+<father id="2694" num="0" />
+<cdparam x="490" y="199" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="secureMem1" value="name" />
-<TGConnectingPoint num="0" id="3797" />
-<TGConnectingPoint num="1" id="3798" />
-<TGConnectingPoint num="2" id="3799" />
-<TGConnectingPoint num="3" id="3800" />
-<TGConnectingPoint num="4" id="3801" />
-<TGConnectingPoint num="5" id="3802" />
-<TGConnectingPoint num="6" id="3803" />
-<TGConnectingPoint num="7" id="3804" />
-<TGConnectingPoint num="8" id="3805" />
-<TGConnectingPoint num="9" id="3806" />
-<TGConnectingPoint num="10" id="3807" />
-<TGConnectingPoint num="11" id="3808" />
-<TGConnectingPoint num="12" id="3809" />
-<TGConnectingPoint num="13" id="3810" />
-<TGConnectingPoint num="14" id="3811" />
-<TGConnectingPoint num="15" id="3812" />
-<TGConnectingPoint num="16" id="3813" />
-<TGConnectingPoint num="17" id="3814" />
-<TGConnectingPoint num="18" id="3815" />
-<TGConnectingPoint num="19" id="3816" />
-<TGConnectingPoint num="20" id="3817" />
-<TGConnectingPoint num="21" id="3818" />
-<TGConnectingPoint num="22" id="3819" />
-<TGConnectingPoint num="23" id="3820" />
-<extraparam>
-<info stereotype="MEMORY" nodeName="secureMem1" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
-</extraparam>
-</COMPONENT>
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="2690" >
+<father id="2694" num="1" />
+<cdparam x="490" y="254" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1105" id="3846" >
-<cdparam x="309" y="358" />
-<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="302" id="2711" >
+<cdparam x="517" y="154" />
+<sizeparam width="520" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Memory0" value="name" />
-<TGConnectingPoint num="0" id="3822" />
-<TGConnectingPoint num="1" id="3823" />
-<TGConnectingPoint num="2" id="3824" />
-<TGConnectingPoint num="3" id="3825" />
-<TGConnectingPoint num="4" id="3826" />
-<TGConnectingPoint num="5" id="3827" />
-<TGConnectingPoint num="6" id="3828" />
-<TGConnectingPoint num="7" id="3829" />
-<TGConnectingPoint num="8" id="3830" />
-<TGConnectingPoint num="9" id="3831" />
-<TGConnectingPoint num="10" id="3832" />
-<TGConnectingPoint num="11" id="3833" />
-<TGConnectingPoint num="12" id="3834" />
-<TGConnectingPoint num="13" id="3835" />
-<TGConnectingPoint num="14" id="3836" />
-<TGConnectingPoint num="15" id="3837" />
-<TGConnectingPoint num="16" id="3838" />
-<TGConnectingPoint num="17" id="3839" />
-<TGConnectingPoint num="18" id="3840" />
-<TGConnectingPoint num="19" id="3841" />
-<TGConnectingPoint num="20" id="3842" />
-<TGConnectingPoint num="21" id="3843" />
-<TGConnectingPoint num="22" id="3844" />
-<TGConnectingPoint num="23" id="3845" />
+<infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK
+#PrivatePublicKeys SmartCard privK pubK
+
+#Confidentiality InterfaceDevice.secretData
+#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m
+" />
+<TGConnectingPoint num="0" id="2695" />
+<TGConnectingPoint num="1" id="2696" />
+<TGConnectingPoint num="2" id="2697" />
+<TGConnectingPoint num="3" id="2698" />
+<TGConnectingPoint num="4" id="2699" />
+<TGConnectingPoint num="5" id="2700" />
+<TGConnectingPoint num="6" id="2701" />
+<TGConnectingPoint num="7" id="2702" />
+<TGConnectingPoint num="8" id="2703" />
+<TGConnectingPoint num="9" id="2704" />
+<TGConnectingPoint num="10" id="2705" />
+<TGConnectingPoint num="11" id="2706" />
+<TGConnectingPoint num="12" id="2707" />
+<TGConnectingPoint num="13" id="2708" />
+<TGConnectingPoint num="14" id="2709" />
+<TGConnectingPoint num="15" id="2710" />
 <extraparam>
-<info stereotype="MEMORY" nodeName="Memory0" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+<Line value="#PrivatePublicKeys InterfaceDevice privK pubK" />
+<Line value="#PrivatePublicKeys SmartCard privK pubK" />
+<Line value="" />
+<Line value="#Confidentiality InterfaceDevice.secretData" />
+<Line value="#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1102" id="3871" >
-<cdparam x="278" y="269" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5003" id="2720" >
+<cdparam x="260" y="373" />
+<sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Bus0" value="name" />
-<TGConnectingPoint num="0" id="3847" />
-<TGConnectingPoint num="1" id="3848" />
-<TGConnectingPoint num="2" id="3849" />
-<TGConnectingPoint num="3" id="3850" />
-<TGConnectingPoint num="4" id="3851" />
-<TGConnectingPoint num="5" id="3852" />
-<TGConnectingPoint num="6" id="3853" />
-<TGConnectingPoint num="7" id="3854" />
-<TGConnectingPoint num="8" id="3855" />
-<TGConnectingPoint num="9" id="3856" />
-<TGConnectingPoint num="10" id="3857" />
-<TGConnectingPoint num="11" id="3858" />
-<TGConnectingPoint num="12" id="3859" />
-<TGConnectingPoint num="13" id="3860" />
-<TGConnectingPoint num="14" id="3861" />
-<TGConnectingPoint num="15" id="3862" />
-<TGConnectingPoint num="16" id="3863" />
-<TGConnectingPoint num="17" id="3864" />
-<TGConnectingPoint num="18" id="3865" />
-<TGConnectingPoint num="19" id="3866" />
-<TGConnectingPoint num="20" id="3867" />
-<TGConnectingPoint num="21" id="3868" />
-<TGConnectingPoint num="22" id="3869" />
-<TGConnectingPoint num="23" id="3870" />
+<infoparam name="DataType0" value="Message" />
+<TGConnectingPoint num="0" id="2712" />
+<TGConnectingPoint num="1" id="2713" />
+<TGConnectingPoint num="2" id="2714" />
+<TGConnectingPoint num="3" id="2715" />
+<TGConnectingPoint num="4" id="2716" />
+<TGConnectingPoint num="5" id="2717" />
+<TGConnectingPoint num="6" id="2718" />
+<TGConnectingPoint num="7" id="2719" />
 <extraparam>
-<info stereotype="BUS-RR" nodeName="Bus0" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="5"  privacy="0"  referenceAttack="ReadDataFromBus" />
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1100" id="3905" >
-<cdparam x="574" y="227" />
-<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5003" id="2729" >
+<cdparam x="68" y="372" />
+<sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU2" value="name" />
-<TGConnectingPoint num="0" id="3881" />
-<TGConnectingPoint num="1" id="3882" />
-<TGConnectingPoint num="2" id="3883" />
-<TGConnectingPoint num="3" id="3884" />
-<TGConnectingPoint num="4" id="3885" />
-<TGConnectingPoint num="5" id="3886" />
-<TGConnectingPoint num="6" id="3887" />
-<TGConnectingPoint num="7" id="3888" />
-<TGConnectingPoint num="8" id="3889" />
-<TGConnectingPoint num="9" id="3890" />
-<TGConnectingPoint num="10" id="3891" />
-<TGConnectingPoint num="11" id="3892" />
-<TGConnectingPoint num="12" id="3893" />
-<TGConnectingPoint num="13" id="3894" />
-<TGConnectingPoint num="14" id="3895" />
-<TGConnectingPoint num="15" id="3896" />
-<TGConnectingPoint num="16" id="3897" />
-<TGConnectingPoint num="17" id="3898" />
-<TGConnectingPoint num="18" id="3899" />
-<TGConnectingPoint num="19" id="3900" />
-<TGConnectingPoint num="20" id="3901" />
-<TGConnectingPoint num="21" id="3902" />
-<TGConnectingPoint num="22" id="3903" />
-<TGConnectingPoint num="23" id="3904" />
+<infoparam name="DataType0" value="Key" />
+<TGConnectingPoint num="0" id="2721" />
+<TGConnectingPoint num="1" id="2722" />
+<TGConnectingPoint num="2" id="2723" />
+<TGConnectingPoint num="3" id="2724" />
+<TGConnectingPoint num="4" id="2725" />
+<TGConnectingPoint num="5" id="2726" />
+<TGConnectingPoint num="6" id="2727" />
+<TGConnectingPoint num="7" id="2728" />
 <extraparam>
-<info stereotype="CPURR" nodeName="CPU2" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="4" MECType="0" encryption="0"/>
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="3880" >
-<father id="3905" num="0" />
-<cdparam x="604" y="279" />
-<sizeparam width="138" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="36" minY="0" maxY="95" />
-<infoparam name="TGComponent" value="AppC_enc::Timer" />
-<TGConnectingPoint num="0" id="3872" />
-<TGConnectingPoint num="1" id="3873" />
-<TGConnectingPoint num="2" id="3874" />
-<TGConnectingPoint num="3" id="3875" />
-<TGConnectingPoint num="4" id="3876" />
-<TGConnectingPoint num="5" id="3877" />
-<TGConnectingPoint num="6" id="3878" />
-<TGConnectingPoint num="7" id="3879" />
-<extraparam>
-<info value="AppC_enc::Timer" taskName="Timer" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
 
-<COMPONENT type="1100" id="3939" >
-<cdparam x="56" y="231" />
-<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5000" id="2804" >
+<cdparam x="21" y="145" />
+<sizeparam width="438" height="219" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU1" value="name" />
-<TGConnectingPoint num="0" id="3915" />
-<TGConnectingPoint num="1" id="3916" />
-<TGConnectingPoint num="2" id="3917" />
-<TGConnectingPoint num="3" id="3918" />
-<TGConnectingPoint num="4" id="3919" />
-<TGConnectingPoint num="5" id="3920" />
-<TGConnectingPoint num="6" id="3921" />
-<TGConnectingPoint num="7" id="3922" />
-<TGConnectingPoint num="8" id="3923" />
-<TGConnectingPoint num="9" id="3924" />
-<TGConnectingPoint num="10" id="3925" />
-<TGConnectingPoint num="11" id="3926" />
-<TGConnectingPoint num="12" id="3927" />
-<TGConnectingPoint num="13" id="3928" />
-<TGConnectingPoint num="14" id="3929" />
-<TGConnectingPoint num="15" id="3930" />
-<TGConnectingPoint num="16" id="3931" />
-<TGConnectingPoint num="17" id="3932" />
-<TGConnectingPoint num="18" id="3933" />
-<TGConnectingPoint num="19" id="3934" />
-<TGConnectingPoint num="20" id="3935" />
-<TGConnectingPoint num="21" id="3936" />
-<TGConnectingPoint num="22" id="3937" />
-<TGConnectingPoint num="23" id="3938" />
+<infoparam name="Block0" value="System" />
+<TGConnectingPoint num="0" id="2780" />
+<TGConnectingPoint num="1" id="2781" />
+<TGConnectingPoint num="2" id="2782" />
+<TGConnectingPoint num="3" id="2783" />
+<TGConnectingPoint num="4" id="2784" />
+<TGConnectingPoint num="5" id="2785" />
+<TGConnectingPoint num="6" id="2786" />
+<TGConnectingPoint num="7" id="2787" />
+<TGConnectingPoint num="8" id="2788" />
+<TGConnectingPoint num="9" id="2789" />
+<TGConnectingPoint num="10" id="2790" />
+<TGConnectingPoint num="11" id="2791" />
+<TGConnectingPoint num="12" id="2792" />
+<TGConnectingPoint num="13" id="2793" />
+<TGConnectingPoint num="14" id="2794" />
+<TGConnectingPoint num="15" id="2795" />
+<TGConnectingPoint num="16" id="2796" />
+<TGConnectingPoint num="17" id="2797" />
+<TGConnectingPoint num="18" id="2798" />
+<TGConnectingPoint num="19" id="2799" />
+<TGConnectingPoint num="20" id="2800" />
+<TGConnectingPoint num="21" id="2801" />
+<TGConnectingPoint num="22" id="2802" />
+<TGConnectingPoint num="23" id="2803" />
 <extraparam>
-<info stereotype="CPURR" nodeName="CPU1" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="2" MECType="0" encryption="0"/>
+<CryptoBlock value="false" />
+<Signal value="in chin(Message msg)" attached="true" />
+<Signal value="out chout(Message msg)" attached="true" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1101" id="3914" >
-<father id="3939" num="0" />
-<cdparam x="20" y="276" />
-<sizeparam width="201" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5000" id="2754" >
+<father id="2804" num="0" />
+<cdparam x="263" y="233" />
+<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="-36" minY="0" maxY="86" />
-<infoparam name="TGComponent" value="AppC_enc::InterfaceDevice" />
-<TGConnectingPoint num="0" id="3906" />
-<TGConnectingPoint num="1" id="3907" />
-<TGConnectingPoint num="2" id="3908" />
-<TGConnectingPoint num="3" id="3909" />
-<TGConnectingPoint num="4" id="3910" />
-<TGConnectingPoint num="5" id="3911" />
-<TGConnectingPoint num="6" id="3912" />
-<TGConnectingPoint num="7" id="3913" />
-<extraparam>
-<info value="AppC_enc::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
-
-<COMPONENT type="1100" id="3991" >
-<cdparam x="267" y="59" />
-<sizeparam width="272" height="167" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="CPU0" value="name" />
-<TGConnectingPoint num="0" id="3967" />
-<TGConnectingPoint num="1" id="3968" />
-<TGConnectingPoint num="2" id="3969" />
-<TGConnectingPoint num="3" id="3970" />
-<TGConnectingPoint num="4" id="3971" />
-<TGConnectingPoint num="5" id="3972" />
-<TGConnectingPoint num="6" id="3973" />
-<TGConnectingPoint num="7" id="3974" />
-<TGConnectingPoint num="8" id="3975" />
-<TGConnectingPoint num="9" id="3976" />
-<TGConnectingPoint num="10" id="3977" />
-<TGConnectingPoint num="11" id="3978" />
-<TGConnectingPoint num="12" id="3979" />
-<TGConnectingPoint num="13" id="3980" />
-<TGConnectingPoint num="14" id="3981" />
-<TGConnectingPoint num="15" id="3982" />
-<TGConnectingPoint num="16" id="3983" />
-<TGConnectingPoint num="17" id="3984" />
-<TGConnectingPoint num="18" id="3985" />
-<TGConnectingPoint num="19" id="3986" />
-<TGConnectingPoint num="20" id="3987" />
-<TGConnectingPoint num="21" id="3988" />
-<TGConnectingPoint num="22" id="3989" />
-<TGConnectingPoint num="23" id="3990" />
-<extraparam>
-<info stereotype="CPURR" nodeName="CPU0" />
-<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/>
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="1101" id="3948" >
-<father id="3991" num="0" />
-<cdparam x="277" y="90" />
-<sizeparam width="138" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="134" minY="0" maxY="127" />
-<infoparam name="TGComponent" value="AppC_enc::TCPIP" />
-<TGConnectingPoint num="0" id="3940" />
-<TGConnectingPoint num="1" id="3941" />
-<TGConnectingPoint num="2" id="3942" />
-<TGConnectingPoint num="3" id="3943" />
-<TGConnectingPoint num="4" id="3944" />
-<TGConnectingPoint num="5" id="3945" />
-<TGConnectingPoint num="6" id="3946" />
-<TGConnectingPoint num="7" id="3947" />
-<extraparam>
-<info value="AppC_enc::TCPIP" taskName="TCPIP" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="3957" >
-<father id="3991" num="1" />
-<cdparam x="293" y="165" />
-<sizeparam width="173" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="99" minY="0" maxY="127" />
-<infoparam name="TGComponent" value="AppC_enc::Application" />
-<TGConnectingPoint num="0" id="3949" />
-<TGConnectingPoint num="1" id="3950" />
-<TGConnectingPoint num="2" id="3951" />
-<TGConnectingPoint num="3" id="3952" />
-<TGConnectingPoint num="4" id="3953" />
-<TGConnectingPoint num="5" id="3954" />
-<TGConnectingPoint num="6" id="3955" />
-<TGConnectingPoint num="7" id="3956" />
+<cdrectangleparam minX="0" maxX="299" minY="0" maxY="93" />
+<infoparam name="Block0" value="SmartCard" />
+<TGConnectingPoint num="0" id="2730" />
+<TGConnectingPoint num="1" id="2731" />
+<TGConnectingPoint num="2" id="2732" />
+<TGConnectingPoint num="3" id="2733" />
+<TGConnectingPoint num="4" id="2734" />
+<TGConnectingPoint num="5" id="2735" />
+<TGConnectingPoint num="6" id="2736" />
+<TGConnectingPoint num="7" id="2737" />
+<TGConnectingPoint num="8" id="2738" />
+<TGConnectingPoint num="9" id="2739" />
+<TGConnectingPoint num="10" id="2740" />
+<TGConnectingPoint num="11" id="2741" />
+<TGConnectingPoint num="12" id="2742" />
+<TGConnectingPoint num="13" id="2743" />
+<TGConnectingPoint num="14" id="2744" />
+<TGConnectingPoint num="15" id="2745" />
+<TGConnectingPoint num="16" id="2746" />
+<TGConnectingPoint num="17" id="2747" />
+<TGConnectingPoint num="18" id="2748" />
+<TGConnectingPoint num="19" id="2749" />
+<TGConnectingPoint num="20" id="2750" />
+<TGConnectingPoint num="21" id="2751" />
+<TGConnectingPoint num="22" id="2752" />
+<TGConnectingPoint num="23" id="2753" />
 <extraparam>
-<info value="AppC_enc::Application" taskName="Application" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
+<CryptoBlock value="true" />
+<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
+<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" />
+<Method value="Message encrypt(Message msg, Key k)" />
+<Method value="Message decrypt(Message msg, Key k)" />
+<Method value="Message sencrypt(Message msg, Key k)" />
+<Method value="Message sdecrypt(Message msg, Key k)" />
+<Method value="Message MAC(Message msg, Key k)" />
+<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
+<Method value="Message concat2(Message msg1, Message msg2)" />
+<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
+<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="get2(Message msg, Message msg1, Message msg2)" />
+<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
+<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="Message aencrypt(Message msg, Key k)" />
+<Method value="Message adecrypt(Message msg, Key k)" />
+<Method value="Key pk(Key k)" />
+<Method value="Message sign(Message msg, Key k)" />
+<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
+<Method value="Message cert(Key k, Message msg)" />
+<Method value="bool verifyCert(Message cert, Key k)" />
+<Method value="Key getpk(Message cert)" />
+<Method value="Key DH(Key pubK, Key privK)" />
+<Method value="Message hash(Message msg)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1101" id="3966" >
-<father id="3991" num="2" />
-<cdparam x="369" y="119" />
-<sizeparam width="170" height="37" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5000" id="2779" >
+<father id="2804" num="1" />
+<cdparam x="36" y="233" />
+<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="102" minY="0" maxY="130" />
-<infoparam name="TGComponent" value="AppC_enc::SmartCard" />
-<TGConnectingPoint num="0" id="3958" />
-<TGConnectingPoint num="1" id="3959" />
-<TGConnectingPoint num="2" id="3960" />
-<TGConnectingPoint num="3" id="3961" />
-<TGConnectingPoint num="4" id="3962" />
-<TGConnectingPoint num="5" id="3963" />
-<TGConnectingPoint num="6" id="3964" />
-<TGConnectingPoint num="7" id="3965" />
+<cdrectangleparam minX="0" maxX="223" minY="0" maxY="93" />
+<infoparam name="Block0" value="InterfaceDevice" />
+<TGConnectingPoint num="0" id="2755" />
+<TGConnectingPoint num="1" id="2756" />
+<TGConnectingPoint num="2" id="2757" />
+<TGConnectingPoint num="3" id="2758" />
+<TGConnectingPoint num="4" id="2759" />
+<TGConnectingPoint num="5" id="2760" />
+<TGConnectingPoint num="6" id="2761" />
+<TGConnectingPoint num="7" id="2762" />
+<TGConnectingPoint num="8" id="2763" />
+<TGConnectingPoint num="9" id="2764" />
+<TGConnectingPoint num="10" id="2765" />
+<TGConnectingPoint num="11" id="2766" />
+<TGConnectingPoint num="12" id="2767" />
+<TGConnectingPoint num="13" id="2768" />
+<TGConnectingPoint num="14" id="2769" />
+<TGConnectingPoint num="15" id="2770" />
+<TGConnectingPoint num="16" id="2771" />
+<TGConnectingPoint num="17" id="2772" />
+<TGConnectingPoint num="18" id="2773" />
+<TGConnectingPoint num="19" id="2774" />
+<TGConnectingPoint num="20" id="2775" />
+<TGConnectingPoint num="21" id="2776" />
+<TGConnectingPoint num="22" id="2777" />
+<TGConnectingPoint num="23" id="2778" />
 <extraparam>
-<info value="AppC_enc::SmartCard" taskName="SmartCard" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
+<CryptoBlock value="true" />
+<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
+<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="bobPubK" value="" type="5" typeOther="Key" />
+<Method value="Message encrypt(Message msg, Key k)" />
+<Method value="Message decrypt(Message msg, Key k)" />
+<Method value="Message sencrypt(Message msg, Key k)" />
+<Method value="Message sdecrypt(Message msg, Key k)" />
+<Method value="Message MAC(Message msg, Key k)" />
+<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
+<Method value="Message concat2(Message msg1, Message msg2)" />
+<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
+<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="get2(Message msg, Message msg1, Message msg2)" />
+<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
+<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="Message aencrypt(Message msg, Key k)" />
+<Method value="Message adecrypt(Message msg, Key k)" />
+<Method value="Key pk(Key k)" />
+<Method value="Message sign(Message msg, Key k)" />
+<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
+<Method value="Message cert(Key k, Message msg)" />
+<Method value="bool verifyCert(Message cert, Key k)" />
+<Method value="Key getpk(Message cert)" />
+<Method value="Key DH(Key pubK, Key privK)" />
+<Method value="Message hash(Message msg)" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1102" id="4016" >
-<cdparam x="630" y="38" />
-<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="5100" id="2806" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="SecureBus2" value="name" />
-<TGConnectingPoint num="0" id="3992" />
-<TGConnectingPoint num="1" id="3993" />
-<TGConnectingPoint num="2" id="3994" />
-<TGConnectingPoint num="3" id="3995" />
-<TGConnectingPoint num="4" id="3996" />
-<TGConnectingPoint num="5" id="3997" />
-<TGConnectingPoint num="6" id="3998" />
-<TGConnectingPoint num="7" id="3999" />
-<TGConnectingPoint num="8" id="4000" />
-<TGConnectingPoint num="9" id="4001" />
-<TGConnectingPoint num="10" id="4002" />
-<TGConnectingPoint num="11" id="4003" />
-<TGConnectingPoint num="12" id="4004" />
-<TGConnectingPoint num="13" id="4005" />
-<TGConnectingPoint num="14" id="4006" />
-<TGConnectingPoint num="15" id="4007" />
-<TGConnectingPoint num="16" id="4008" />
-<TGConnectingPoint num="17" id="4009" />
-<TGConnectingPoint num="18" id="4010" />
-<TGConnectingPoint num="19" id="4011" />
-<TGConnectingPoint num="20" id="4012" />
-<TGConnectingPoint num="21" id="4013" />
-<TGConnectingPoint num="22" id="4014" />
-<TGConnectingPoint num="23" id="4015" />
-<extraparam>
-<info stereotype="BUS-RR" nodeName="SecureBus2" />
-<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
-</extraparam>
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="2805" />
 </COMPONENT>
 
-<COMPONENT type="1105" id="4041" >
-<cdparam x="780" y="123" />
-<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="2813" >
+<cdparam x="411" y="567" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2812" />
+<P1  x="411" y="567" id="3016" />
+<P2  x="420" y="613" id="2975" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2811" >
+<father id="2813" num="0" />
+<cdparam x="453" y="610" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="secureMem2" value="name" />
-<TGConnectingPoint num="0" id="4017" />
-<TGConnectingPoint num="1" id="4018" />
-<TGConnectingPoint num="2" id="4019" />
-<TGConnectingPoint num="3" id="4020" />
-<TGConnectingPoint num="4" id="4021" />
-<TGConnectingPoint num="5" id="4022" />
-<TGConnectingPoint num="6" id="4023" />
-<TGConnectingPoint num="7" id="4024" />
-<TGConnectingPoint num="8" id="4025" />
-<TGConnectingPoint num="9" id="4026" />
-<TGConnectingPoint num="10" id="4027" />
-<TGConnectingPoint num="11" id="4028" />
-<TGConnectingPoint num="12" id="4029" />
-<TGConnectingPoint num="13" id="4030" />
-<TGConnectingPoint num="14" id="4031" />
-<TGConnectingPoint num="15" id="4032" />
-<TGConnectingPoint num="16" id="4033" />
-<TGConnectingPoint num="17" id="4034" />
-<TGConnectingPoint num="18" id="4035" />
-<TGConnectingPoint num="19" id="4036" />
-<TGConnectingPoint num="20" id="4037" />
-<TGConnectingPoint num="21" id="4038" />
-<TGConnectingPoint num="22" id="4039" />
-<TGConnectingPoint num="23" id="4040" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2807" />
+<TGConnectingPoint num="1" id="2808" />
+<TGConnectingPoint num="2" id="2809" />
+<TGConnectingPoint num="3" id="2810" />
 <extraparam>
-<info stereotype="MEMORY" nodeName="secureMem2" />
-<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<CONNECTOR type="125" id="4042" >
-<cdparam x="539" y="100" />
+<CONNECTOR type="5102" id="2820" >
+<cdparam x="496" y="703" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="539" y="100" id="3978" />
-<P2  x="630" y="63" id="3995" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2819" />
+<P1  x="420" y="663" id="2980" />
+<P2  x="438" y="703" id="3026" />
 <AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2818" >
+<father id="2820" num="0" />
+<cdparam x="453" y="697" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2814" />
+<TGConnectingPoint num="1" id="2815" />
+<TGConnectingPoint num="2" id="2816" />
+<TGConnectingPoint num="3" id="2817" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="4043" >
-<cdparam x="143" y="511" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="143" y="511" id="3798" />
-<P2  x="142" y="453" id="3778" />
-<AutomaticDrawing  data="true" />
-<extraparam>
-<info priority="0" />
-<spy value="false" />
-</extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="4044" >
-<cdparam x="138" y="357" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="138" y="357" id="3921" />
-<P2  x="142" y="403" id="3773" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2827" >
+<cdparam x="411" y="508" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to stop state" value="null" />
+<TGConnectingPoint num="0" id="2826" />
+<P1  x="411" y="508" id="3034" />
+<P2  x="411" y="537" id="3015" />
 <AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2825" >
+<father id="2827" num="0" />
+<cdparam x="411" y="548" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2821" />
+<TGConnectingPoint num="1" id="2822" />
+<TGConnectingPoint num="2" id="2823" />
+<TGConnectingPoint num="3" id="2824" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="4045" >
-<cdparam x="402" y="367" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2834" >
+<cdparam x="411" y="389" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Memory0 to Bus0" value="{info}" />
-<P1  x="403" y="358" id="3823" />
-<P2  x="403" y="319" id="3853" />
+<infoparam name="connector from state0 to state0" value="null" />
+<TGConnectingPoint num="0" id="2833" />
+<P1  x="411" y="389" id="3075" />
+<P2  x="411" y="468" id="3029" />
 <AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2832" >
+<father id="2834" num="0" />
+<cdparam x="439" y="414" />
+<sizeparam width="148" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2828" />
+<TGConnectingPoint num="1" id="2829" />
+<TGConnectingPoint num="2" id="2830" />
+<TGConnectingPoint num="3" id="2831" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="sk = DH(bobPubK, privK)" />
+<actions value="m.data = secretData" />
+<actions value="m1 = sencrypt(m, sk)" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="4046" >
-<cdparam x="190" y="300" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2841" >
+<cdparam x="407" y="70" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU1 to Bus0" value="{info}" />
-<P1  x="221" y="294" id="3919" />
-<P2  x="278" y="294" id="3850" />
+<infoparam name="connector from start state to state0" value="null" />
+<TGConnectingPoint num="0" id="2840" />
+<P1  x="407" y="70" id="3110" />
+<P2  x="405" y="91" id="2934" />
 <AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2839" >
+<father id="2841" num="0" />
+<cdparam x="407" y="110" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2835" />
+<TGConnectingPoint num="1" id="2836" />
+<TGConnectingPoint num="2" id="2837" />
+<TGConnectingPoint num="3" id="2838" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="4047" >
-<cdparam x="662" y="310" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU2 to Bus0" value="{info}" />
-<P1  x="574" y="294" id="3884" />
-<P2  x="528" y="294" id="3851" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2848" >
+<cdparam x="392" y="122" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2847" />
+<P1  x="392" y="122" id="2962" />
+<P2  x="392" y="150" id="2922" />
 <AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2846" >
+<father id="2848" num="0" />
+<cdparam x="411" y="142" />
+<sizeparam width="120" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2842" />
+<TGConnectingPoint num="1" id="2843" />
+<TGConnectingPoint num="2" id="2844" />
+<TGConnectingPoint num="3" id="2845" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="m.data = pubK.data" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="4048" >
-<cdparam x="388" y="162" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from CPU0 to Bus0" value="{info}" />
-<P1  x="403" y="226" id="3973" />
-<P2  x="403" y="269" id="3848" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2855" >
+<cdparam x="391" y="166" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2854" />
+<P1  x="392" y="180" id="2923" />
+<P2  x="380" y="224" id="2898" />
 <AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2853" >
+<father id="2855" num="0" />
+<cdparam x="390" y="188" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2849" />
+<TGConnectingPoint num="1" id="2850" />
+<TGConnectingPoint num="2" id="2851" />
+<TGConnectingPoint num="3" id="2852" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
-</CONNECTOR>
-<CONNECTOR type="125" id="4049" >
-<cdparam x="812" y="190" />
+</SUBCOMPONENT>
+
+<CONNECTOR type="5102" id="2862" >
+<cdparam x="380" y="258" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="{info}" />
-<P1  x="868" y="123" id="4018" />
-<P2  x="755" y="88" id="3998" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2861" />
+<P1  x="380" y="258" id="2910" />
+<P2  x="386" y="287" id="2870" />
 <AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2860" >
+<father id="2862" num="0" />
+<cdparam x="377" y="267" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2856" />
+<TGConnectingPoint num="1" id="2857" />
+<TGConnectingPoint num="2" id="2858" />
+<TGConnectingPoint num="3" id="2859" />
 <extraparam>
-<info priority="0" />
-<spy value="false" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
-</CONNECTOR>
-
-</TMLArchiDiagramPanel>
-
-</Modeling>
-
-
-
+</SUBCOMPONENT>
 
-<Modeling type="TML Component Design" nameTab="AppC_enc" >
-<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="0" maxX="2724" minY="0" maxY="916" channels="true" events="true" requests="true" zoom="1.0000000000000018" >
-<CONNECTOR type="126" id="4050" >
-<cdparam x="535" y="347" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="556" y="347" id="4162" />
-<P2  x="547" y="382" id="4117" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4052" >
-<cdparam x="820" y="398" />
+<CONNECTOR type="5102" id="2869" >
+<cdparam x="375" y="306" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="1025" y="497" id="4259" />
-<P2  x="761" y="574" id="4147" />
-<Point x="887" y="577" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="2868" />
+<P1  x="386" y="317" id="2871" />
+<P2  x="377" y="349" id="3077" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4051" >
-<father id="4052" num="0" />
-<cdparam x="887" y="577" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="2867" >
+<father id="2869" num="0" />
+<cdparam x="396" y="336" />
+<sizeparam width="142" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="1744" minY="0" maxY="587" />
-<infoparam name="point " value="null" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="2863" />
+<TGConnectingPoint num="1" id="2864" />
+<TGConnectingPoint num="2" id="2865" />
+<TGConnectingPoint num="3" id="2866" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="bobPubK.data = m.data" />
+</extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="126" id="4053" >
-<cdparam x="568" y="323" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="710" y="403" id="4145" />
-<P2  x="693" y="347" id="4184" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4054" >
-<cdparam x="522" y="390" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="521" y="382" id="4112" />
-<P2  x="466" y="335" id="4091" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4055" >
-<cdparam x="409" y="124" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="401" y="83" id="4089" />
-<P2  x="593" y="84" id="4160" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4056" >
-<cdparam x="656" y="426" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="552" id="4141" />
-<P2  x="969" y="495" id="4245" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4057" >
-<cdparam x="656" y="400" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="519" id="4139" />
-<P2  x="921" y="476" id="4247" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4058" >
-<cdparam x="602" y="327" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="751" y="406" id="4131" />
-<P2  x="829" y="375" id="4211" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4059" >
-<cdparam x="689" y="292" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="855" y="375" id="4215" />
-<P2  x="921" y="362" id="4237" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4060" >
-<cdparam x="656" y="377" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="491" id="4135" />
-<P2  x="921" y="453" id="4239" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4061" >
-<cdparam x="656" y="351" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="458" id="4137" />
-<P2  x="921" y="426" id="4241" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4062" >
-<cdparam x="741" y="296" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="921" y="397" id="4243" />
-<P2  x="816" y="429" id="4133" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4063" >
-<cdparam x="735" y="260" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="918" y="330" id="4235" />
-<P2  x="747" y="282" id="4172" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4064" >
-<cdparam x="641" y="230" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="747" y="248" id="4174" />
-<P2  x="918" y="291" id="4233" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4065" >
-<cdparam x="641" y="195" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="747" y="203" id="4176" />
-<P2  x="918" y="248" id="4231" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4066" >
-<cdparam x="740" y="353" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="829" y="375" id="4210" />
-<P2  x="747" y="314" id="4178" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4067" >
-<cdparam x="460" y="270" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="521" y="303" id="4168" />
-<P2  x="466" y="303" id="4097" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4068" >
-<cdparam x="387" y="129" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="464" y="126" id="4101" />
-<P2  x="524" y="126" id="4180" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4069" >
-<cdparam x="389" y="200" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="466" y="215" id="4095" />
-<P2  x="521" y="215" id="4166" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4070" >
-<cdparam x="460" y="236" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="521" y="260" id="4164" />
-<P2  x="466" y="260" id="4093" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4071" >
-<cdparam x="389" y="163" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="Connector between ports" />
-<P1  x="466" y="169" id="4099" />
-<P2  x="521" y="169" id="4170" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4072" >
-<cdparam x="967" y="190" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="918" y="198" id="4229" />
-<P2  x="747" y="124" id="4158" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4073" >
-<cdparam x="1028" y="535" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="630" y="345" id="4182" />
-<P2  x="669" y="406" id="4143" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4074" >
-<cdparam x="1308" y="303" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1222" y="378" id="4195" />
-<P2  x="1178" y="380" id="4249" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4075" >
-<cdparam x="1172" y="437" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1178" y="415" id="4251" />
-<P2  x="1222" y="413" id="4197" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="126" id="4078" >
-<cdparam x="1041" y="162" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1178" y="208" id="4253" />
-<P2  x="1178" y="276" id="4255" />
-<Point x="1227" y="207" />
-<Point x="1227" y="247" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4076" >
-<father id="4078" num="0" />
-<cdparam x="1227" y="207" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4077" >
-<father id="4078" num="1" />
-<cdparam x="1227" y="247" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5104" id="2880" >
+<cdparam x="356" y="292" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
+<infoparam name="Receive signal" value="chin(m)" />
+<TGConnectingPoint num="0" id="2870" />
+<TGConnectingPoint num="1" id="2871" />
+<TGConnectingPoint num="2" id="2872" />
+<TGConnectingPoint num="3" id="2873" />
+<TGConnectingPoint num="4" id="2874" />
+<TGConnectingPoint num="5" id="2875" />
+<TGConnectingPoint num="6" id="2876" />
+<TGConnectingPoint num="7" id="2877" />
+<TGConnectingPoint num="8" id="2878" />
+<TGConnectingPoint num="9" id="2879" />
+</COMPONENT>
 
-<CONNECTOR type="126" id="4079" >
-<cdparam x="877" y="343" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1178" y="454" id="4257" />
-<P2  x="1222" y="441" id="4199" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<COMPONENT type="1205" id="4088" >
-<cdparam x="1155" y="486" />
-<sizeparam width="205" height="105" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="2921" >
+<cdparam x="338" y="224" />
+<sizeparam width="114" height="34" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="2725" minY="0" maxY="917" />
-<infoparam name="Record component" value="TCP_CTRL" />
-<TGConnectingPoint num="0" id="4080" />
-<TGConnectingPoint num="1" id="4081" />
-<TGConnectingPoint num="2" id="4082" />
-<TGConnectingPoint num="3" id="4083" />
-<TGConnectingPoint num="4" id="4084" />
-<TGConnectingPoint num="5" id="4085" />
-<TGConnectingPoint num="6" id="4086" />
-<TGConnectingPoint num="7" id="4087" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="receivingPubK" />
+<TGConnectingPoint num="0" id="2881" />
+<TGConnectingPoint num="1" id="2882" />
+<TGConnectingPoint num="2" id="2883" />
+<TGConnectingPoint num="3" id="2884" />
+<TGConnectingPoint num="4" id="2885" />
+<TGConnectingPoint num="5" id="2886" />
+<TGConnectingPoint num="6" id="2887" />
+<TGConnectingPoint num="7" id="2888" />
+<TGConnectingPoint num="8" id="2889" />
+<TGConnectingPoint num="9" id="2890" />
+<TGConnectingPoint num="10" id="2891" />
+<TGConnectingPoint num="11" id="2892" />
+<TGConnectingPoint num="12" id="2893" />
+<TGConnectingPoint num="13" id="2894" />
+<TGConnectingPoint num="14" id="2895" />
+<TGConnectingPoint num="15" id="2896" />
+<TGConnectingPoint num="16" id="2897" />
+<TGConnectingPoint num="17" id="2898" />
+<TGConnectingPoint num="18" id="2899" />
+<TGConnectingPoint num="19" id="2900" />
+<TGConnectingPoint num="20" id="2901" />
+<TGConnectingPoint num="21" id="2902" />
+<TGConnectingPoint num="22" id="2903" />
+<TGConnectingPoint num="23" id="2904" />
+<TGConnectingPoint num="24" id="2905" />
+<TGConnectingPoint num="25" id="2906" />
+<TGConnectingPoint num="26" id="2907" />
+<TGConnectingPoint num="27" id="2908" />
+<TGConnectingPoint num="28" id="2909" />
+<TGConnectingPoint num="29" id="2910" />
+<TGConnectingPoint num="30" id="2911" />
+<TGConnectingPoint num="31" id="2912" />
+<TGConnectingPoint num="32" id="2913" />
+<TGConnectingPoint num="33" id="2914" />
+<TGConnectingPoint num="34" id="2915" />
+<TGConnectingPoint num="35" id="2916" />
+<TGConnectingPoint num="36" id="2917" />
+<TGConnectingPoint num="37" id="2918" />
+<TGConnectingPoint num="38" id="2919" />
+<TGConnectingPoint num="39" id="2920" />
 <extraparam>
-<Attribute access="2" id="a" value="" type="0" typeOther="" />
-<Attribute access="2" id="state" value="" type="0" typeOther="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1202" id="4111" >
-<cdparam x="163" y="96" />
-<sizeparam width="290" height="276" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5103" id="2932" >
+<cdparam x="362" y="155" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="2725" minY="0" maxY="917" />
-<infoparam name="TGComponent" value="InterfaceDevice" />
-<TGConnectingPoint num="0" id="4103" />
-<TGConnectingPoint num="1" id="4104" />
-<TGConnectingPoint num="2" id="4105" />
-<TGConnectingPoint num="3" id="4106" />
-<TGConnectingPoint num="4" id="4107" />
-<TGConnectingPoint num="5" id="4108" />
-<TGConnectingPoint num="6" id="4109" />
-<TGConnectingPoint num="7" id="4110" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="chout(m)" />
+<TGConnectingPoint num="0" id="2922" />
+<TGConnectingPoint num="1" id="2923" />
+<TGConnectingPoint num="2" id="2924" />
+<TGConnectingPoint num="3" id="2925" />
+<TGConnectingPoint num="4" id="2926" />
+<TGConnectingPoint num="5" id="2927" />
+<TGConnectingPoint num="6" id="2928" />
+<TGConnectingPoint num="7" id="2929" />
+<TGConnectingPoint num="8" id="2930" />
+<TGConnectingPoint num="9" id="2931" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="2973" >
+<cdparam x="355" y="91" />
+<sizeparam width="100" height="31" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="sendingPubK" />
+<TGConnectingPoint num="0" id="2933" />
+<TGConnectingPoint num="1" id="2934" />
+<TGConnectingPoint num="2" id="2935" />
+<TGConnectingPoint num="3" id="2936" />
+<TGConnectingPoint num="4" id="2937" />
+<TGConnectingPoint num="5" id="2938" />
+<TGConnectingPoint num="6" id="2939" />
+<TGConnectingPoint num="7" id="2940" />
+<TGConnectingPoint num="8" id="2941" />
+<TGConnectingPoint num="9" id="2942" />
+<TGConnectingPoint num="10" id="2943" />
+<TGConnectingPoint num="11" id="2944" />
+<TGConnectingPoint num="12" id="2945" />
+<TGConnectingPoint num="13" id="2946" />
+<TGConnectingPoint num="14" id="2947" />
+<TGConnectingPoint num="15" id="2948" />
+<TGConnectingPoint num="16" id="2949" />
+<TGConnectingPoint num="17" id="2950" />
+<TGConnectingPoint num="18" id="2951" />
+<TGConnectingPoint num="19" id="2952" />
+<TGConnectingPoint num="20" id="2953" />
+<TGConnectingPoint num="21" id="2954" />
+<TGConnectingPoint num="22" id="2955" />
+<TGConnectingPoint num="23" id="2956" />
+<TGConnectingPoint num="24" id="2957" />
+<TGConnectingPoint num="25" id="2958" />
+<TGConnectingPoint num="26" id="2959" />
+<TGConnectingPoint num="27" id="2960" />
+<TGConnectingPoint num="28" id="2961" />
+<TGConnectingPoint num="29" id="2962" />
+<TGConnectingPoint num="30" id="2963" />
+<TGConnectingPoint num="31" id="2964" />
+<TGConnectingPoint num="32" id="2965" />
+<TGConnectingPoint num="33" id="2966" />
+<TGConnectingPoint num="34" id="2967" />
+<TGConnectingPoint num="35" id="2968" />
+<TGConnectingPoint num="36" id="2969" />
+<TGConnectingPoint num="37" id="2970" />
+<TGConnectingPoint num="38" id="2971" />
+<TGConnectingPoint num="39" id="2972" />
 <extraparam>
-<Data isAttacker="No" />
-<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
-<Attribute access="2" id="x" value="0" type="0" typeOther="" />
-<Attribute access="2" id="i" value="0" type="0" typeOther="" />
-<Attribute access="2" id="nbOfComputedPackets" value="1" type="0" typeOther="" />
-<Attribute access="2" id="b" value="" type="4" typeOther="" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1203" id="4090" >
-<father id="4111" num="0" />
-<reference id="184" />
-<cdparam x="388" y="83" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event reset, pTS, end" />
-<TGConnectingPoint num="0" id="4089" />
-<extraparam>
-<Prop commName="reset, pTS, end" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4092" >
-<father id="4111" num="1" />
-<cdparam x="440" y="322" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5106" id="3014" >
+<cdparam x="370" y="613" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
-<TGConnectingPoint num="0" id="4091" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="beforeFinish" />
+<TGConnectingPoint num="0" id="2974" />
+<TGConnectingPoint num="1" id="2975" />
+<TGConnectingPoint num="2" id="2976" />
+<TGConnectingPoint num="3" id="2977" />
+<TGConnectingPoint num="4" id="2978" />
+<TGConnectingPoint num="5" id="2979" />
+<TGConnectingPoint num="6" id="2980" />
+<TGConnectingPoint num="7" id="2981" />
+<TGConnectingPoint num="8" id="2982" />
+<TGConnectingPoint num="9" id="2983" />
+<TGConnectingPoint num="10" id="2984" />
+<TGConnectingPoint num="11" id="2985" />
+<TGConnectingPoint num="12" id="2986" />
+<TGConnectingPoint num="13" id="2987" />
+<TGConnectingPoint num="14" id="2988" />
+<TGConnectingPoint num="15" id="2989" />
+<TGConnectingPoint num="16" id="2990" />
+<TGConnectingPoint num="17" id="2991" />
+<TGConnectingPoint num="18" id="2992" />
+<TGConnectingPoint num="19" id="2993" />
+<TGConnectingPoint num="20" id="2994" />
+<TGConnectingPoint num="21" id="2995" />
+<TGConnectingPoint num="22" id="2996" />
+<TGConnectingPoint num="23" id="2997" />
+<TGConnectingPoint num="24" id="2998" />
+<TGConnectingPoint num="25" id="2999" />
+<TGConnectingPoint num="26" id="3000" />
+<TGConnectingPoint num="27" id="3001" />
+<TGConnectingPoint num="28" id="3002" />
+<TGConnectingPoint num="29" id="3003" />
+<TGConnectingPoint num="30" id="3004" />
+<TGConnectingPoint num="31" id="3005" />
+<TGConnectingPoint num="32" id="3006" />
+<TGConnectingPoint num="33" id="3007" />
+<TGConnectingPoint num="34" id="3008" />
+<TGConnectingPoint num="35" id="3009" />
+<TGConnectingPoint num="36" id="3010" />
+<TGConnectingPoint num="37" id="3011" />
+<TGConnectingPoint num="38" id="3012" />
+<TGConnectingPoint num="39" id="3013" />
 <extraparam>
-<Prop commName="answerToReset, pTSConfirm" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4094" >
-<father id="4111" num="2" />
-<reference id="184" />
-<cdparam x="440" y="247" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="5103" id="3025" >
+<cdparam x="377" y="542" />
+<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Channel fromSCtoD" />
-<TGConnectingPoint num="0" id="4093" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="chout(m1)" />
+<TGConnectingPoint num="0" id="3015" />
+<TGConnectingPoint num="1" id="3016" />
+<TGConnectingPoint num="2" id="3017" />
+<TGConnectingPoint num="3" id="3018" />
+<TGConnectingPoint num="4" id="3019" />
+<TGConnectingPoint num="5" id="3020" />
+<TGConnectingPoint num="6" id="3021" />
+<TGConnectingPoint num="7" id="3022" />
+<TGConnectingPoint num="8" id="3023" />
+<TGConnectingPoint num="9" id="3024" />
+</COMPONENT>
+
+<COMPONENT type="5101" id="3027" >
+<cdparam x="428" y="708" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="3026" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3068" >
+<cdparam x="340" y="468" />
+<sizeparam width="143" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="sendingMessage" />
+<TGConnectingPoint num="0" id="3028" />
+<TGConnectingPoint num="1" id="3029" />
+<TGConnectingPoint num="2" id="3030" />
+<TGConnectingPoint num="3" id="3031" />
+<TGConnectingPoint num="4" id="3032" />
+<TGConnectingPoint num="5" id="3033" />
+<TGConnectingPoint num="6" id="3034" />
+<TGConnectingPoint num="7" id="3035" />
+<TGConnectingPoint num="8" id="3036" />
+<TGConnectingPoint num="9" id="3037" />
+<TGConnectingPoint num="10" id="3038" />
+<TGConnectingPoint num="11" id="3039" />
+<TGConnectingPoint num="12" id="3040" />
+<TGConnectingPoint num="13" id="3041" />
+<TGConnectingPoint num="14" id="3042" />
+<TGConnectingPoint num="15" id="3043" />
+<TGConnectingPoint num="16" id="3044" />
+<TGConnectingPoint num="17" id="3045" />
+<TGConnectingPoint num="18" id="3046" />
+<TGConnectingPoint num="19" id="3047" />
+<TGConnectingPoint num="20" id="3048" />
+<TGConnectingPoint num="21" id="3049" />
+<TGConnectingPoint num="22" id="3050" />
+<TGConnectingPoint num="23" id="3051" />
+<TGConnectingPoint num="24" id="3052" />
+<TGConnectingPoint num="25" id="3053" />
+<TGConnectingPoint num="26" id="3054" />
+<TGConnectingPoint num="27" id="3055" />
+<TGConnectingPoint num="28" id="3056" />
+<TGConnectingPoint num="29" id="3057" />
+<TGConnectingPoint num="30" id="3058" />
+<TGConnectingPoint num="31" id="3059" />
+<TGConnectingPoint num="32" id="3060" />
+<TGConnectingPoint num="33" id="3061" />
+<TGConnectingPoint num="34" id="3062" />
+<TGConnectingPoint num="35" id="3063" />
+<TGConnectingPoint num="36" id="3064" />
+<TGConnectingPoint num="37" id="3065" />
+<TGConnectingPoint num="38" id="3066" />
+<TGConnectingPoint num="39" id="3067" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3109" >
+<cdparam x="344" y="349" />
+<sizeparam width="134" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="makingMessage" />
+<TGConnectingPoint num="0" id="3069" />
+<TGConnectingPoint num="1" id="3070" />
+<TGConnectingPoint num="2" id="3071" />
+<TGConnectingPoint num="3" id="3072" />
+<TGConnectingPoint num="4" id="3073" />
+<TGConnectingPoint num="5" id="3074" />
+<TGConnectingPoint num="6" id="3075" />
+<TGConnectingPoint num="7" id="3076" />
+<TGConnectingPoint num="8" id="3077" />
+<TGConnectingPoint num="9" id="3078" />
+<TGConnectingPoint num="10" id="3079" />
+<TGConnectingPoint num="11" id="3080" />
+<TGConnectingPoint num="12" id="3081" />
+<TGConnectingPoint num="13" id="3082" />
+<TGConnectingPoint num="14" id="3083" />
+<TGConnectingPoint num="15" id="3084" />
+<TGConnectingPoint num="16" id="3085" />
+<TGConnectingPoint num="17" id="3086" />
+<TGConnectingPoint num="18" id="3087" />
+<TGConnectingPoint num="19" id="3088" />
+<TGConnectingPoint num="20" id="3089" />
+<TGConnectingPoint num="21" id="3090" />
+<TGConnectingPoint num="22" id="3091" />
+<TGConnectingPoint num="23" id="3092" />
+<TGConnectingPoint num="24" id="3093" />
+<TGConnectingPoint num="25" id="3094" />
+<TGConnectingPoint num="26" id="3095" />
+<TGConnectingPoint num="27" id="3096" />
+<TGConnectingPoint num="28" id="3097" />
+<TGConnectingPoint num="29" id="3098" />
+<TGConnectingPoint num="30" id="3099" />
+<TGConnectingPoint num="31" id="3100" />
+<TGConnectingPoint num="32" id="3101" />
+<TGConnectingPoint num="33" id="3102" />
+<TGConnectingPoint num="34" id="3103" />
+<TGConnectingPoint num="35" id="3104" />
+<TGConnectingPoint num="36" id="3105" />
+<TGConnectingPoint num="37" id="3106" />
+<TGConnectingPoint num="38" id="3107" />
+<TGConnectingPoint num="39" id="3108" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5100" id="3111" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="3110" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="3118" >
+<cdparam x="418" y="632" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to state0" value="null" />
+<TGConnectingPoint num="0" id="3117" />
+<P1  x="418" y="632" id="3285" />
+<P2  x="422" y="677" id="3321" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3116" >
+<father id="3118" num="0" />
+<cdparam x="433" y="656" />
+<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3112" />
+<TGConnectingPoint num="1" id="3113" />
+<TGConnectingPoint num="2" id="3114" />
+<TGConnectingPoint num="3" id="3115" />
 <extraparam>
-<Prop commName="fromSCtoD" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="receivedData = m.data" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4096" >
-<father id="4111" num="3" />
-<reference id="184" />
-<cdparam x="440" y="202" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<CONNECTOR type="5102" id="3125" >
+<cdparam x="409" y="526" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to state0" value="null" />
+<TGConnectingPoint num="0" id="3124" />
+<P1  x="409" y="526" id="3367" />
+<P2  x="418" y="592" id="3280" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3123" >
+<father id="3125" num="0" />
+<cdparam x="431" y="551" />
+<sizeparam width="151" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Channel fromDtoSC" />
-<TGConnectingPoint num="0" id="4095" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3119" />
+<TGConnectingPoint num="1" id="3120" />
+<TGConnectingPoint num="2" id="3121" />
+<TGConnectingPoint num="3" id="3122" />
 <extraparam>
-<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="sk = DH(alicePubK, privK)" />
+<actions value="m = sdecrypt(m2, sk)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4098" >
-<father id="4111" num="4" />
-<cdparam x="440" y="290" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<CONNECTOR type="5102" id="3132" >
+<cdparam x="408" y="454" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to state0" value="null" />
+<TGConnectingPoint num="0" id="3131" />
+<P1  x="408" y="454" id="3403" />
+<P2  x="409" y="486" id="3362" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3130" >
+<father id="3132" num="0" />
+<cdparam x="408" y="494" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event data_Ready_SC" />
-<TGConnectingPoint num="0" id="4097" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3126" />
+<TGConnectingPoint num="1" id="3127" />
+<TGConnectingPoint num="2" id="3128" />
+<TGConnectingPoint num="3" id="3129" />
 <extraparam>
-<Prop commName="data_Ready_SC" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4100" >
-<father id="4111" num="5" />
-<cdparam x="440" y="156" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<CONNECTOR type="5102" id="3139" >
+<cdparam x="408" y="394" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from state0 to Send signal" value="null" />
+<TGConnectingPoint num="0" id="3138" />
+<P1  x="408" y="394" id="3419" />
+<P2  x="408" y="424" id="3402" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3137" >
+<father id="3139" num="0" />
+<cdparam x="408" y="434" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
-<infoparam name="TGComponent" value="Event data_Ready" />
-<TGConnectingPoint num="0" id="4099" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3133" />
+<TGConnectingPoint num="1" id="3134" />
+<TGConnectingPoint num="2" id="3135" />
+<TGConnectingPoint num="3" id="3136" />
 <extraparam>
-<Prop commName="data_Ready" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
-<Type type="2" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4102" >
-<father id="4111" num="6" />
-<cdparam x="443" y="116" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<CONNECTOR type="5102" id="3146" >
+<cdparam x="407" y="70" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to state0" value="null" />
+<TGConnectingPoint num="0" id="3145" />
+<P1  x="407" y="70" id="3454" />
+<P2  x="407" y="95" id="3239" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3144" >
+<father id="3146" num="0" />
+<cdparam x="407" y="110" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="280" minY="-10" maxY="266" />
-<infoparam name="TGComponent" value="Request activation" />
-<TGConnectingPoint num="0" id="4101" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3140" />
+<TGConnectingPoint num="1" id="3141" />
+<TGConnectingPoint num="2" id="3142" />
+<TGConnectingPoint num="3" id="3143" />
 <extraparam>
-<Prop commName="activation" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1200" id="4287" >
-<cdparam x="534" y="93" />
-<sizeparam width="935" height="530" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="3153" >
+<cdparam x="407" y="127" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3152" />
+<P1  x="407" y="127" id="3244" />
+<P2  x="407" y="153" id="3227" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3151" >
+<father id="3153" num="0" />
+<cdparam x="428" y="145" />
+<sizeparam width="120" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="2725" minY="0" maxY="917" />
-<infoparam name="TGComponent" value="SmartCard" />
-<TGConnectingPoint num="0" id="4279" />
-<TGConnectingPoint num="1" id="4280" />
-<TGConnectingPoint num="2" id="4281" />
-<TGConnectingPoint num="3" id="4282" />
-<TGConnectingPoint num="4" id="4283" />
-<TGConnectingPoint num="5" id="4284" />
-<TGConnectingPoint num="6" id="4285" />
-<TGConnectingPoint num="7" id="4286" />
-<extraparam>
-<info hiddeni="false" />
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="1201" id="4130" >
-<father id="4287" num="0" />
-<cdparam x="521" y="369" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="922" minY="-13" maxY="517" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="4112" />
-<TGConnectingPoint num="1" id="4113" />
-<TGConnectingPoint num="2" id="4114" />
-<TGConnectingPoint num="3" id="4115" />
-<TGConnectingPoint num="4" id="4116" />
-<TGConnectingPoint num="5" id="4117" />
-<TGConnectingPoint num="6" id="4118" />
-<TGConnectingPoint num="7" id="4119" />
-<TGConnectingPoint num="8" id="4120" />
-<TGConnectingPoint num="9" id="4121" />
-<TGConnectingPoint num="10" id="4122" />
-<TGConnectingPoint num="11" id="4123" />
-<TGConnectingPoint num="12" id="4124" />
-<TGConnectingPoint num="13" id="4125" />
-<TGConnectingPoint num="14" id="4126" />
-<TGConnectingPoint num="15" id="4127" />
-<TGConnectingPoint num="16" id="4128" />
-<TGConnectingPoint num="17" id="4129" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="4157" >
-<father id="4287" num="1" />
-<cdparam x="565" y="416" />
-<sizeparam width="240" height="145" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="695" minY="0" maxY="385" />
-<infoparam name="TGComponent" value="Application" />
-<TGConnectingPoint num="0" id="4149" />
-<TGConnectingPoint num="1" id="4150" />
-<TGConnectingPoint num="2" id="4151" />
-<TGConnectingPoint num="3" id="4152" />
-<TGConnectingPoint num="4" id="4153" />
-<TGConnectingPoint num="5" id="4154" />
-<TGConnectingPoint num="6" id="4155" />
-<TGConnectingPoint num="7" id="4156" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3147" />
+<TGConnectingPoint num="1" id="3148" />
+<TGConnectingPoint num="2" id="3149" />
+<TGConnectingPoint num="3" id="3150" />
 <extraparam>
-<Data isAttacker="No" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="m.data = pubK.data" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4132" >
-<father id="4157" num="0" />
-<cdparam x="741" y="406" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<CONNECTOR type="5102" id="3160" >
+<cdparam x="407" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3159" />
+<P1  x="407" y="183" id="3228" />
+<P2  x="408" y="213" id="3187" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3158" >
+<father id="3160" num="0" />
+<cdparam x="408" y="199" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Request start_TCP_IP" />
-<TGConnectingPoint num="0" id="4131" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3154" />
+<TGConnectingPoint num="1" id="3155" />
+<TGConnectingPoint num="2" id="3156" />
+<TGConnectingPoint num="3" id="3157" />
 <extraparam>
-<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4134" >
-<father id="4157" num="1" />
-<cdparam x="795" y="419" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<CONNECTOR type="5102" id="3167" >
+<cdparam x="409" y="265" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3166" />
+<P1  x="408" y="251" id="3192" />
+<P2  x="406" y="285" id="3175" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3165" >
+<father id="3167" num="0" />
+<cdparam x="409" y="281" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Channel fromTtoA" />
-<TGConnectingPoint num="0" id="4133" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3161" />
+<TGConnectingPoint num="1" id="3162" />
+<TGConnectingPoint num="2" id="3163" />
+<TGConnectingPoint num="3" id="3164" />
 <extraparam>
-<Prop commName="fromTtoA" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4136" >
-<father id="4157" num="2" />
-<cdparam x="795" y="481" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<CONNECTOR type="5102" id="3174" >
+<cdparam x="410" y="327" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="3173" />
+<P1  x="406" y="315" id="3176" />
+<P2  x="408" y="354" id="3414" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3172" >
+<father id="3174" num="0" />
+<cdparam x="426" y="337" />
+<sizeparam width="145" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Event send_TCP" />
-<TGConnectingPoint num="0" id="4135" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="3168" />
+<TGConnectingPoint num="1" id="3169" />
+<TGConnectingPoint num="2" id="3170" />
+<TGConnectingPoint num="3" id="3171" />
 <extraparam>
-<Prop commName="send_TCP" commType="1" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+<actions value="alicePubK.data = m.data" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4138" >
-<father id="4157" num="3" />
-<cdparam x="795" y="448" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5104" id="3185" >
+<cdparam x="376" y="290" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Event open, abort, close" />
-<TGConnectingPoint num="0" id="4137" />
-<extraparam>
-<Prop commName="open, abort, close" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4140" >
-<father id="4157" num="4" />
-<cdparam x="795" y="509" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Receive signal" value="chin(m)" />
+<TGConnectingPoint num="0" id="3175" />
+<TGConnectingPoint num="1" id="3176" />
+<TGConnectingPoint num="2" id="3177" />
+<TGConnectingPoint num="3" id="3178" />
+<TGConnectingPoint num="4" id="3179" />
+<TGConnectingPoint num="5" id="3180" />
+<TGConnectingPoint num="6" id="3181" />
+<TGConnectingPoint num="7" id="3182" />
+<TGConnectingPoint num="8" id="3183" />
+<TGConnectingPoint num="9" id="3184" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3226" >
+<cdparam x="347" y="213" />
+<sizeparam width="123" height="38" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Event receive_Application" />
-<TGConnectingPoint num="0" id="4139" />
-<extraparam>
-<Prop commName="receive_Application" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4142" >
-<father id="4157" num="5" />
-<cdparam x="795" y="542" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="receivingPubK" />
+<TGConnectingPoint num="0" id="3186" />
+<TGConnectingPoint num="1" id="3187" />
+<TGConnectingPoint num="2" id="3188" />
+<TGConnectingPoint num="3" id="3189" />
+<TGConnectingPoint num="4" id="3190" />
+<TGConnectingPoint num="5" id="3191" />
+<TGConnectingPoint num="6" id="3192" />
+<TGConnectingPoint num="7" id="3193" />
+<TGConnectingPoint num="8" id="3194" />
+<TGConnectingPoint num="9" id="3195" />
+<TGConnectingPoint num="10" id="3196" />
+<TGConnectingPoint num="11" id="3197" />
+<TGConnectingPoint num="12" id="3198" />
+<TGConnectingPoint num="13" id="3199" />
+<TGConnectingPoint num="14" id="3200" />
+<TGConnectingPoint num="15" id="3201" />
+<TGConnectingPoint num="16" id="3202" />
+<TGConnectingPoint num="17" id="3203" />
+<TGConnectingPoint num="18" id="3204" />
+<TGConnectingPoint num="19" id="3205" />
+<TGConnectingPoint num="20" id="3206" />
+<TGConnectingPoint num="21" id="3207" />
+<TGConnectingPoint num="22" id="3208" />
+<TGConnectingPoint num="23" id="3209" />
+<TGConnectingPoint num="24" id="3210" />
+<TGConnectingPoint num="25" id="3211" />
+<TGConnectingPoint num="26" id="3212" />
+<TGConnectingPoint num="27" id="3213" />
+<TGConnectingPoint num="28" id="3214" />
+<TGConnectingPoint num="29" id="3215" />
+<TGConnectingPoint num="30" id="3216" />
+<TGConnectingPoint num="31" id="3217" />
+<TGConnectingPoint num="32" id="3218" />
+<TGConnectingPoint num="33" id="3219" />
+<TGConnectingPoint num="34" id="3220" />
+<TGConnectingPoint num="35" id="3221" />
+<TGConnectingPoint num="36" id="3222" />
+<TGConnectingPoint num="37" id="3223" />
+<TGConnectingPoint num="38" id="3224" />
+<TGConnectingPoint num="39" id="3225" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5103" id="3237" >
+<cdparam x="377" y="158" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Channel fromAtoT" />
-<TGConnectingPoint num="0" id="4141" />
-<extraparam>
-<Prop commName="fromAtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4144" >
-<father id="4157" num="6" />
-<cdparam x="659" y="406" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="chout(m)" />
+<TGConnectingPoint num="0" id="3227" />
+<TGConnectingPoint num="1" id="3228" />
+<TGConnectingPoint num="2" id="3229" />
+<TGConnectingPoint num="3" id="3230" />
+<TGConnectingPoint num="4" id="3231" />
+<TGConnectingPoint num="5" id="3232" />
+<TGConnectingPoint num="6" id="3233" />
+<TGConnectingPoint num="7" id="3234" />
+<TGConnectingPoint num="8" id="3235" />
+<TGConnectingPoint num="9" id="3236" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3278" >
+<cdparam x="351" y="95" />
+<sizeparam width="113" height="32" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
-<infoparam name="TGComponent" value="Request start_Application" />
-<TGConnectingPoint num="0" id="4143" />
-<extraparam>
-<Prop commName="start_Application" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4146" >
-<father id="4157" num="7" />
-<cdparam x="697" y="403" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="State" value="sendingPubK" />
+<TGConnectingPoint num="0" id="3238" />
+<TGConnectingPoint num="1" id="3239" />
+<TGConnectingPoint num="2" id="3240" />
+<TGConnectingPoint num="3" id="3241" />
+<TGConnectingPoint num="4" id="3242" />
+<TGConnectingPoint num="5" id="3243" />
+<TGConnectingPoint num="6" id="3244" />
+<TGConnectingPoint num="7" id="3245" />
+<TGConnectingPoint num="8" id="3246" />
+<TGConnectingPoint num="9" id="3247" />
+<TGConnectingPoint num="10" id="3248" />
+<TGConnectingPoint num="11" id="3249" />
+<TGConnectingPoint num="12" id="3250" />
+<TGConnectingPoint num="13" id="3251" />
+<TGConnectingPoint num="14" id="3252" />
+<TGConnectingPoint num="15" id="3253" />
+<TGConnectingPoint num="16" id="3254" />
+<TGConnectingPoint num="17" id="3255" />
+<TGConnectingPoint num="18" id="3256" />
+<TGConnectingPoint num="19" id="3257" />
+<TGConnectingPoint num="20" id="3258" />
+<TGConnectingPoint num="21" id="3259" />
+<TGConnectingPoint num="22" id="3260" />
+<TGConnectingPoint num="23" id="3261" />
+<TGConnectingPoint num="24" id="3262" />
+<TGConnectingPoint num="25" id="3263" />
+<TGConnectingPoint num="26" id="3264" />
+<TGConnectingPoint num="27" id="3265" />
+<TGConnectingPoint num="28" id="3266" />
+<TGConnectingPoint num="29" id="3267" />
+<TGConnectingPoint num="30" id="3268" />
+<TGConnectingPoint num="31" id="3269" />
+<TGConnectingPoint num="32" id="3270" />
+<TGConnectingPoint num="33" id="3271" />
+<TGConnectingPoint num="34" id="3272" />
+<TGConnectingPoint num="35" id="3273" />
+<TGConnectingPoint num="36" id="3274" />
+<TGConnectingPoint num="37" id="3275" />
+<TGConnectingPoint num="38" id="3276" />
+<TGConnectingPoint num="39" id="3277" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3319" >
+<cdparam x="329" y="592" />
+<sizeparam width="178" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
-<infoparam name="Primitive port" value="Event connectionOpened" />
-<TGConnectingPoint num="0" id="4145" />
-<extraparam>
-<Prop commName="connectionOpened" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4148" >
-<father id="4157" num="8" />
-<cdparam x="748" y="548" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="messageDecrypted" />
+<TGConnectingPoint num="0" id="3279" />
+<TGConnectingPoint num="1" id="3280" />
+<TGConnectingPoint num="2" id="3281" />
+<TGConnectingPoint num="3" id="3282" />
+<TGConnectingPoint num="4" id="3283" />
+<TGConnectingPoint num="5" id="3284" />
+<TGConnectingPoint num="6" id="3285" />
+<TGConnectingPoint num="7" id="3286" />
+<TGConnectingPoint num="8" id="3287" />
+<TGConnectingPoint num="9" id="3288" />
+<TGConnectingPoint num="10" id="3289" />
+<TGConnectingPoint num="11" id="3290" />
+<TGConnectingPoint num="12" id="3291" />
+<TGConnectingPoint num="13" id="3292" />
+<TGConnectingPoint num="14" id="3293" />
+<TGConnectingPoint num="15" id="3294" />
+<TGConnectingPoint num="16" id="3295" />
+<TGConnectingPoint num="17" id="3296" />
+<TGConnectingPoint num="18" id="3297" />
+<TGConnectingPoint num="19" id="3298" />
+<TGConnectingPoint num="20" id="3299" />
+<TGConnectingPoint num="21" id="3300" />
+<TGConnectingPoint num="22" id="3301" />
+<TGConnectingPoint num="23" id="3302" />
+<TGConnectingPoint num="24" id="3303" />
+<TGConnectingPoint num="25" id="3304" />
+<TGConnectingPoint num="26" id="3305" />
+<TGConnectingPoint num="27" id="3306" />
+<TGConnectingPoint num="28" id="3307" />
+<TGConnectingPoint num="29" id="3308" />
+<TGConnectingPoint num="30" id="3309" />
+<TGConnectingPoint num="31" id="3310" />
+<TGConnectingPoint num="32" id="3311" />
+<TGConnectingPoint num="33" id="3312" />
+<TGConnectingPoint num="34" id="3313" />
+<TGConnectingPoint num="35" id="3314" />
+<TGConnectingPoint num="36" id="3315" />
+<TGConnectingPoint num="37" id="3316" />
+<TGConnectingPoint num="38" id="3317" />
+<TGConnectingPoint num="39" id="3318" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3360" >
+<cdparam x="352" y="677" />
+<sizeparam width="140" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
-<infoparam name="Primitive port" value="Event opened" />
-<TGConnectingPoint num="0" id="4147" />
-<extraparam>
-<Prop commName="opened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="4194" >
-<father id="4287" num="2" />
-<cdparam x="534" y="97" />
-<sizeparam width="200" height="237" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="SecretDataReceived" />
+<TGConnectingPoint num="0" id="3320" />
+<TGConnectingPoint num="1" id="3321" />
+<TGConnectingPoint num="2" id="3322" />
+<TGConnectingPoint num="3" id="3323" />
+<TGConnectingPoint num="4" id="3324" />
+<TGConnectingPoint num="5" id="3325" />
+<TGConnectingPoint num="6" id="3326" />
+<TGConnectingPoint num="7" id="3327" />
+<TGConnectingPoint num="8" id="3328" />
+<TGConnectingPoint num="9" id="3329" />
+<TGConnectingPoint num="10" id="3330" />
+<TGConnectingPoint num="11" id="3331" />
+<TGConnectingPoint num="12" id="3332" />
+<TGConnectingPoint num="13" id="3333" />
+<TGConnectingPoint num="14" id="3334" />
+<TGConnectingPoint num="15" id="3335" />
+<TGConnectingPoint num="16" id="3336" />
+<TGConnectingPoint num="17" id="3337" />
+<TGConnectingPoint num="18" id="3338" />
+<TGConnectingPoint num="19" id="3339" />
+<TGConnectingPoint num="20" id="3340" />
+<TGConnectingPoint num="21" id="3341" />
+<TGConnectingPoint num="22" id="3342" />
+<TGConnectingPoint num="23" id="3343" />
+<TGConnectingPoint num="24" id="3344" />
+<TGConnectingPoint num="25" id="3345" />
+<TGConnectingPoint num="26" id="3346" />
+<TGConnectingPoint num="27" id="3347" />
+<TGConnectingPoint num="28" id="3348" />
+<TGConnectingPoint num="29" id="3349" />
+<TGConnectingPoint num="30" id="3350" />
+<TGConnectingPoint num="31" id="3351" />
+<TGConnectingPoint num="32" id="3352" />
+<TGConnectingPoint num="33" id="3353" />
+<TGConnectingPoint num="34" id="3354" />
+<TGConnectingPoint num="35" id="3355" />
+<TGConnectingPoint num="36" id="3356" />
+<TGConnectingPoint num="37" id="3357" />
+<TGConnectingPoint num="38" id="3358" />
+<TGConnectingPoint num="39" id="3359" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="3401" >
+<cdparam x="338" y="486" />
+<sizeparam width="142" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="735" minY="0" maxY="293" />
-<infoparam name="TGComponent" value="SmartCard" />
-<TGConnectingPoint num="0" id="4186" />
-<TGConnectingPoint num="1" id="4187" />
-<TGConnectingPoint num="2" id="4188" />
-<TGConnectingPoint num="3" id="4189" />
-<TGConnectingPoint num="4" id="4190" />
-<TGConnectingPoint num="5" id="4191" />
-<TGConnectingPoint num="6" id="4192" />
-<TGConnectingPoint num="7" id="4193" />
-<extraparam>
-<Data isAttacker="No" />
-<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
-<Attribute access="2" id="a" value="0" type="0" typeOther="" />
-<Attribute access="2" id="b" value="" type="4" typeOther="" />
-<Attribute access="2" id="i" value="0" type="0" typeOther="" />
-<Attribute access="2" id="j" value="0" type="0" typeOther="" />
-<Attribute access="2" id="x" value="0" type="0" typeOther="" />
-<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
-<Attribute access="2" id="t" value="" type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4159" >
-<father id="4194" num="0" />
-<cdparam x="721" y="111" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="messageDecrypt" />
+<TGConnectingPoint num="0" id="3361" />
+<TGConnectingPoint num="1" id="3362" />
+<TGConnectingPoint num="2" id="3363" />
+<TGConnectingPoint num="3" id="3364" />
+<TGConnectingPoint num="4" id="3365" />
+<TGConnectingPoint num="5" id="3366" />
+<TGConnectingPoint num="6" id="3367" />
+<TGConnectingPoint num="7" id="3368" />
+<TGConnectingPoint num="8" id="3369" />
+<TGConnectingPoint num="9" id="3370" />
+<TGConnectingPoint num="10" id="3371" />
+<TGConnectingPoint num="11" id="3372" />
+<TGConnectingPoint num="12" id="3373" />
+<TGConnectingPoint num="13" id="3374" />
+<TGConnectingPoint num="14" id="3375" />
+<TGConnectingPoint num="15" id="3376" />
+<TGConnectingPoint num="16" id="3377" />
+<TGConnectingPoint num="17" id="3378" />
+<TGConnectingPoint num="18" id="3379" />
+<TGConnectingPoint num="19" id="3380" />
+<TGConnectingPoint num="20" id="3381" />
+<TGConnectingPoint num="21" id="3382" />
+<TGConnectingPoint num="22" id="3383" />
+<TGConnectingPoint num="23" id="3384" />
+<TGConnectingPoint num="24" id="3385" />
+<TGConnectingPoint num="25" id="3386" />
+<TGConnectingPoint num="26" id="3387" />
+<TGConnectingPoint num="27" id="3388" />
+<TGConnectingPoint num="28" id="3389" />
+<TGConnectingPoint num="29" id="3390" />
+<TGConnectingPoint num="30" id="3391" />
+<TGConnectingPoint num="31" id="3392" />
+<TGConnectingPoint num="32" id="3393" />
+<TGConnectingPoint num="33" id="3394" />
+<TGConnectingPoint num="34" id="3395" />
+<TGConnectingPoint num="35" id="3396" />
+<TGConnectingPoint num="36" id="3397" />
+<TGConnectingPoint num="37" id="3398" />
+<TGConnectingPoint num="38" id="3399" />
+<TGConnectingPoint num="39" id="3400" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5104" id="3412" >
+<cdparam x="374" y="429" />
+<sizeparam width="68" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event send" />
-<TGConnectingPoint num="0" id="4158" />
-<extraparam>
-<Prop commName="send" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4161" >
-<father id="4194" num="1" />
-<reference id="184" />
-<cdparam x="580" y="84" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Send signal" value="chin(m2)" />
+<TGConnectingPoint num="0" id="3402" />
+<TGConnectingPoint num="1" id="3403" />
+<TGConnectingPoint num="2" id="3404" />
+<TGConnectingPoint num="3" id="3405" />
+<TGConnectingPoint num="4" id="3406" />
+<TGConnectingPoint num="5" id="3407" />
+<TGConnectingPoint num="6" id="3408" />
+<TGConnectingPoint num="7" id="3409" />
+<TGConnectingPoint num="8" id="3410" />
+<TGConnectingPoint num="9" id="3411" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="3453" >
+<cdparam x="342" y="354" />
+<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event reset, pTS, end" />
-<TGConnectingPoint num="0" id="4160" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="waitingForMessage" />
+<TGConnectingPoint num="0" id="3413" />
+<TGConnectingPoint num="1" id="3414" />
+<TGConnectingPoint num="2" id="3415" />
+<TGConnectingPoint num="3" id="3416" />
+<TGConnectingPoint num="4" id="3417" />
+<TGConnectingPoint num="5" id="3418" />
+<TGConnectingPoint num="6" id="3419" />
+<TGConnectingPoint num="7" id="3420" />
+<TGConnectingPoint num="8" id="3421" />
+<TGConnectingPoint num="9" id="3422" />
+<TGConnectingPoint num="10" id="3423" />
+<TGConnectingPoint num="11" id="3424" />
+<TGConnectingPoint num="12" id="3425" />
+<TGConnectingPoint num="13" id="3426" />
+<TGConnectingPoint num="14" id="3427" />
+<TGConnectingPoint num="15" id="3428" />
+<TGConnectingPoint num="16" id="3429" />
+<TGConnectingPoint num="17" id="3430" />
+<TGConnectingPoint num="18" id="3431" />
+<TGConnectingPoint num="19" id="3432" />
+<TGConnectingPoint num="20" id="3433" />
+<TGConnectingPoint num="21" id="3434" />
+<TGConnectingPoint num="22" id="3435" />
+<TGConnectingPoint num="23" id="3436" />
+<TGConnectingPoint num="24" id="3437" />
+<TGConnectingPoint num="25" id="3438" />
+<TGConnectingPoint num="26" id="3439" />
+<TGConnectingPoint num="27" id="3440" />
+<TGConnectingPoint num="28" id="3441" />
+<TGConnectingPoint num="29" id="3442" />
+<TGConnectingPoint num="30" id="3443" />
+<TGConnectingPoint num="31" id="3444" />
+<TGConnectingPoint num="32" id="3445" />
+<TGConnectingPoint num="33" id="3446" />
+<TGConnectingPoint num="34" id="3447" />
+<TGConnectingPoint num="35" id="3448" />
+<TGConnectingPoint num="36" id="3449" />
+<TGConnectingPoint num="37" id="3450" />
+<TGConnectingPoint num="38" id="3451" />
+<TGConnectingPoint num="39" id="3452" />
 <extraparam>
-<Prop commName="reset, pTS, end" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4163" >
-<father id="4194" num="2" />
-<cdparam x="543" y="321" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="3455" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
-<TGConnectingPoint num="0" id="4162" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="3454" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="AVATAR Design" nameTab="DHWithCertificateSecurityProtocol" >
+<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0" >
+<MainCode value="void __user_init() {"/>
+<MainCode value="}"/>
+<Optimized value="true" />
+<Validated value="" />
+<Ignored value="" />
+
+<CONNECTOR type="5002" id="3461" >
+<cdparam x="568" y="220" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Block0 to Block0" value="" />
+<TGConnectingPoint num="0" id="3458" />
+<TGConnectingPoint num="1" id="3459" />
+<TGConnectingPoint num="2" id="3460" />
+<P1  x="459" y="106" id="3601" />
+<P2  x="459" y="192" id="3594" />
+<Point x="492" y="119" />
+<Point x="492" y="174" />
+<AutomaticDrawing  data="true" />
 <extraparam>
-<Prop commName="answerToReset, pTSConfirm" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<iso value="in chin(Message msg)" />
+<osd value="out chout(Message msg)" />
+<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4165" >
-<father id="4194" num="3" />
-<reference id="184" />
-<cdparam x="521" y="247" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3456" >
+<father id="3461" num="0" />
+<cdparam x="492" y="119" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromSCtoD" />
-<TGConnectingPoint num="0" id="4164" />
-<extraparam>
-<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4167" >
-<father id="4194" num="4" />
-<reference id="184" />
-<cdparam x="521" y="202" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="3457" >
+<father id="3461" num="1" />
+<cdparam x="492" y="174" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromDtoSC" />
-<TGConnectingPoint num="0" id="4166" />
-<extraparam>
-<Prop commName="fromDtoSC" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="null" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4169" >
-<father id="4194" num="5" />
-<cdparam x="521" y="290" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5003" id="3470" >
+<cdparam x="450" y="340" />
+<sizeparam width="200" height="100" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event data_Ready_SC" />
-<TGConnectingPoint num="0" id="4168" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DataType0" value="Key" />
+<TGConnectingPoint num="0" id="3462" />
+<TGConnectingPoint num="1" id="3463" />
+<TGConnectingPoint num="2" id="3464" />
+<TGConnectingPoint num="3" id="3465" />
+<TGConnectingPoint num="4" id="3466" />
+<TGConnectingPoint num="5" id="3467" />
+<TGConnectingPoint num="6" id="3468" />
+<TGConnectingPoint num="7" id="3469" />
 <extraparam>
-<Prop commName="data_Ready_SC" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Attribute access="2" id="data" value="0" type="8" typeOther="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4171" >
-<father id="4194" num="6" />
-<cdparam x="521" y="156" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="5003" id="3479" >
+<cdparam x="50" y="340" />
+<sizeparam width="200" height="100" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event data_Ready" />
-<TGConnectingPoint num="0" id="4170" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DataType0" value="Message" />
+<TGConnectingPoint num="0" id="3471" />
+<TGConnectingPoint num="1" id="3472" />
+<TGConnectingPoint num="2" id="3473" />
+<TGConnectingPoint num="3" id="3474" />
+<TGConnectingPoint num="4" id="3475" />
+<TGConnectingPoint num="5" id="3476" />
+<TGConnectingPoint num="6" id="3477" />
+<TGConnectingPoint num="7" id="3478" />
 <extraparam>
-<Prop commName="data_Ready" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
-<Type type="2" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Attribute access="2" id="data" value="0" type="8" typeOther="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4173" >
-<father id="4194" num="7" />
-<cdparam x="721" y="269" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="302" id="3496" >
+<cdparam x="566" y="97" />
+<sizeparam width="520" height="188" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromTtoP" />
-<TGConnectingPoint num="0" id="4172" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK
+#PrivatePublicKeys SmartCard privK pubK
+#PrivatePublicKeys CA privK pubK
+#InitialSystemKnowledge SmartCard.interfaceDeviceID CA.interfaceDeviceID
+#InitialSystemKnowledge InterfaceDevice.smartCardID CA.smartCardID
+#InitialSystemKnowledge InterfaceDevice.pubK CA.interfaceDevicePubK
+#InitialSystemKnowledge SmartCard.pubK CA.smartCardPubK
+#InitialSystemKnowledge CA.pubK SmartCard.CAPubK InterfaceDevice.CAPubK
+
+#Confidentiality InterfaceDevice.secretData
+#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m
+" />
+<TGConnectingPoint num="0" id="3480" />
+<TGConnectingPoint num="1" id="3481" />
+<TGConnectingPoint num="2" id="3482" />
+<TGConnectingPoint num="3" id="3483" />
+<TGConnectingPoint num="4" id="3484" />
+<TGConnectingPoint num="5" id="3485" />
+<TGConnectingPoint num="6" id="3486" />
+<TGConnectingPoint num="7" id="3487" />
+<TGConnectingPoint num="8" id="3488" />
+<TGConnectingPoint num="9" id="3489" />
+<TGConnectingPoint num="10" id="3490" />
+<TGConnectingPoint num="11" id="3491" />
+<TGConnectingPoint num="12" id="3492" />
+<TGConnectingPoint num="13" id="3493" />
+<TGConnectingPoint num="14" id="3494" />
+<TGConnectingPoint num="15" id="3495" />
 <extraparam>
-<Prop commName="fromTtoP" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4175" >
-<father id="4194" num="8" />
-<cdparam x="721" y="235" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Channel fromPtoT" />
-<TGConnectingPoint num="0" id="4174" />
-<extraparam>
-<Prop commName="fromPtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4177" >
-<father id="4194" num="9" />
-<cdparam x="721" y="190" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Event receive" />
-<TGConnectingPoint num="0" id="4176" />
-<extraparam>
-<Prop commName="receive" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Line value="#PrivatePublicKeys InterfaceDevice privK pubK" />
+<Line value="#PrivatePublicKeys SmartCard privK pubK" />
+<Line value="#PrivatePublicKeys CA privK pubK" />
+<Line value="#InitialSystemKnowledge SmartCard.interfaceDeviceID CA.interfaceDeviceID" />
+<Line value="#InitialSystemKnowledge InterfaceDevice.smartCardID CA.smartCardID" />
+<Line value="#InitialSystemKnowledge InterfaceDevice.pubK CA.interfaceDevicePubK" />
+<Line value="#InitialSystemKnowledge SmartCard.pubK CA.smartCardPubK" />
+<Line value="#InitialSystemKnowledge CA.pubK SmartCard.CAPubK InterfaceDevice.CAPubK" />
+<Line value="" />
+<Line value="#Confidentiality InterfaceDevice.secretData" />
+<Line value="#Authenticity InterfaceDevice.sendingMessage.m SmartCard.messageDecrypted.m" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4179" >
-<father id="4194" num="10" />
-<cdparam x="721" y="301" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="5003" id="3505" >
+<cdparam x="260" y="373" />
+<sizeparam width="129" height="61" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="TGComponent" value="Request start_TCP_IP" />
-<TGConnectingPoint num="0" id="4178" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DataType0" value="Message" />
+<TGConnectingPoint num="0" id="3497" />
+<TGConnectingPoint num="1" id="3498" />
+<TGConnectingPoint num="2" id="3499" />
+<TGConnectingPoint num="3" id="3500" />
+<TGConnectingPoint num="4" id="3501" />
+<TGConnectingPoint num="5" id="3502" />
+<TGConnectingPoint num="6" id="3503" />
+<TGConnectingPoint num="7" id="3504" />
 <extraparam>
-<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4181" >
-<father id="4194" num="11" />
-<cdparam x="524" y="116" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="5003" id="3514" >
+<cdparam x="68" y="372" />
+<sizeparam width="123" height="62" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="190" minY="-10" maxY="227" />
-<infoparam name="TGComponent" value="Request activation" />
-<TGConnectingPoint num="0" id="4180" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="DataType0" value="Key" />
+<TGConnectingPoint num="0" id="3506" />
+<TGConnectingPoint num="1" id="3507" />
+<TGConnectingPoint num="2" id="3508" />
+<TGConnectingPoint num="3" id="3509" />
+<TGConnectingPoint num="4" id="3510" />
+<TGConnectingPoint num="5" id="3511" />
+<TGConnectingPoint num="6" id="3512" />
+<TGConnectingPoint num="7" id="3513" />
 <extraparam>
-<Prop commName="activation" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<Attribute access="0" id="data" value="" type="8" typeOther="" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4183" >
-<father id="4194" num="12" />
-<cdparam x="620" y="324" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="5000" id="3614" >
+<cdparam x="21" y="20" />
+<sizeparam width="438" height="344" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="190" minY="-10" maxY="227" />
-<infoparam name="TGComponent" value="Request start_Application" />
-<TGConnectingPoint num="0" id="4182" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="Block0" value="System" />
+<TGConnectingPoint num="0" id="3590" />
+<TGConnectingPoint num="1" id="3591" />
+<TGConnectingPoint num="2" id="3592" />
+<TGConnectingPoint num="3" id="3593" />
+<TGConnectingPoint num="4" id="3594" />
+<TGConnectingPoint num="5" id="3595" />
+<TGConnectingPoint num="6" id="3596" />
+<TGConnectingPoint num="7" id="3597" />
+<TGConnectingPoint num="8" id="3598" />
+<TGConnectingPoint num="9" id="3599" />
+<TGConnectingPoint num="10" id="3600" />
+<TGConnectingPoint num="11" id="3601" />
+<TGConnectingPoint num="12" id="3602" />
+<TGConnectingPoint num="13" id="3603" />
+<TGConnectingPoint num="14" id="3604" />
+<TGConnectingPoint num="15" id="3605" />
+<TGConnectingPoint num="16" id="3606" />
+<TGConnectingPoint num="17" id="3607" />
+<TGConnectingPoint num="18" id="3608" />
+<TGConnectingPoint num="19" id="3609" />
+<TGConnectingPoint num="20" id="3610" />
+<TGConnectingPoint num="21" id="3611" />
+<TGConnectingPoint num="22" id="3612" />
+<TGConnectingPoint num="23" id="3613" />
 <extraparam>
-<Prop commName="start_Application" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<CryptoBlock value="false" />
+<Signal value="in chin(Message msg)" attached="true" />
+<Signal value="out chout(Message msg)" attached="true" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4185" >
-<father id="4194" num="13" />
-<cdparam x="680" y="321" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+<SUBCOMPONENT type="5000" id="3539" >
+<father id="3614" num="0" />
+<cdparam x="115" y="249" />
+<sizeparam width="261" height="83" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
-<infoparam name="Primitive port" value="Event connectionOpened" />
-<TGConnectingPoint num="0" id="4184" />
+<cdrectangleparam minX="0" maxX="177" minY="0" maxY="261" />
+<infoparam name="Block0" value="CA" />
+<TGConnectingPoint num="0" id="3515" />
+<TGConnectingPoint num="1" id="3516" />
+<TGConnectingPoint num="2" id="3517" />
+<TGConnectingPoint num="3" id="3518" />
+<TGConnectingPoint num="4" id="3519" />
+<TGConnectingPoint num="5" id="3520" />
+<TGConnectingPoint num="6" id="3521" />
+<TGConnectingPoint num="7" id="3522" />
+<TGConnectingPoint num="8" id="3523" />
+<TGConnectingPoint num="9" id="3524" />
+<TGConnectingPoint num="10" id="3525" />
+<TGConnectingPoint num="11" id="3526" />
+<TGConnectingPoint num="12" id="3527" />
+<TGConnectingPoint num="13" id="3528" />
+<TGConnectingPoint num="14" id="3529" />
+<TGConnectingPoint num="15" id="3530" />
+<TGConnectingPoint num="16" id="3531" />
+<TGConnectingPoint num="17" id="3532" />
+<TGConnectingPoint num="18" id="3533" />
+<TGConnectingPoint num="19" id="3534" />
+<TGConnectingPoint num="20" id="3535" />
+<TGConnectingPoint num="21" id="3536" />
+<TGConnectingPoint num="22" id="3537" />
+<TGConnectingPoint num="23" id="3538" />
 <extraparam>
-<Prop commName="connectionOpened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<CryptoBlock value="true" />
+<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="newK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="newCert" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="newID" value="" type="8" typeOther="" />
+<Attribute access="0" id="interfaceDevicePubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="smartCardPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="interfaceDeviceID" value="" type="8" typeOther="" />
+<Attribute access="0" id="smartCardID" value="" type="8" typeOther="" />
+<Method value="Message aencrypt(Message msg, Key k)" />
+<Method value="Message adecrypt(Message msg, Key k)" />
+<Method value="Key pk(Key k)" />
+<Method value="Message sign(Message msg, Key k)" />
+<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
+<Method value="Message cert(Key k, Message msg)" />
+<Method value="bool verifyCert(Message cert, Key k)" />
+<Method value="Key getpk(Message cert)" />
+<Method value="Message sencrypt(Message msg, Key k)" />
+<Method value="Message sdecrypt(Message msg, Key k)" />
+<Method value="Key DH(Key pubK, Key privK)" />
+<Method value="Message hash(Message msg)" />
+<Method value="Message MAC(Message msg, Key k)" />
+<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
+<Method value="Message concat2(Message msg1, Message msg2)" />
+<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
+<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="get2(Message msg, Message msg1, Message msg2)" />
+<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
+<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1200" id="4278" >
-<father id="4287" num="3" />
-<cdparam x="842" y="133" />
-<sizeparam width="570" height="485" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5000" id="3564" >
+<father id="3614" num="1" />
+<cdparam x="36" y="108" />
+<sizeparam width="215" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="365" minY="0" maxY="45" />
-<infoparam name="TGComponent" value="TCPIP Entities" />
-<TGConnectingPoint num="0" id="4270" />
-<TGConnectingPoint num="1" id="4271" />
-<TGConnectingPoint num="2" id="4272" />
-<TGConnectingPoint num="3" id="4273" />
-<TGConnectingPoint num="4" id="4274" />
-<TGConnectingPoint num="5" id="4275" />
-<TGConnectingPoint num="6" id="4276" />
-<TGConnectingPoint num="7" id="4277" />
+<cdrectangleparam minX="0" maxX="223" minY="0" maxY="218" />
+<infoparam name="Block0" value="InterfaceDevice" />
+<TGConnectingPoint num="0" id="3540" />
+<TGConnectingPoint num="1" id="3541" />
+<TGConnectingPoint num="2" id="3542" />
+<TGConnectingPoint num="3" id="3543" />
+<TGConnectingPoint num="4" id="3544" />
+<TGConnectingPoint num="5" id="3545" />
+<TGConnectingPoint num="6" id="3546" />
+<TGConnectingPoint num="7" id="3547" />
+<TGConnectingPoint num="8" id="3548" />
+<TGConnectingPoint num="9" id="3549" />
+<TGConnectingPoint num="10" id="3550" />
+<TGConnectingPoint num="11" id="3551" />
+<TGConnectingPoint num="12" id="3552" />
+<TGConnectingPoint num="13" id="3553" />
+<TGConnectingPoint num="14" id="3554" />
+<TGConnectingPoint num="15" id="3555" />
+<TGConnectingPoint num="16" id="3556" />
+<TGConnectingPoint num="17" id="3557" />
+<TGConnectingPoint num="18" id="3558" />
+<TGConnectingPoint num="19" id="3559" />
+<TGConnectingPoint num="20" id="3560" />
+<TGConnectingPoint num="21" id="3561" />
+<TGConnectingPoint num="22" id="3562" />
+<TGConnectingPoint num="23" id="3563" />
 <extraparam>
-<info hiddeni="false" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="4209" >
-<father id="4278" num="0" />
-<cdparam x="1232" y="328" />
-<sizeparam width="140" height="141" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="430" minY="0" maxY="344" />
-<infoparam name="TGComponent" value="Timer" />
-<TGConnectingPoint num="0" id="4201" />
-<TGConnectingPoint num="1" id="4202" />
-<TGConnectingPoint num="2" id="4203" />
-<TGConnectingPoint num="3" id="4204" />
-<TGConnectingPoint num="4" id="4205" />
-<TGConnectingPoint num="5" id="4206" />
-<TGConnectingPoint num="6" id="4207" />
-<TGConnectingPoint num="7" id="4208" />
-<extraparam>
-<Data isAttacker="No" />
-<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+<CryptoBlock value="true" />
+<Attribute access="0" id="secretData" value="" type="8" typeOther="" />
+<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="sig" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="certOK" value="" type="4" typeOther="" />
+<Attribute access="0" id="smartCardID" value="" type="8" typeOther="" />
+<Attribute access="0" id="smartCardPubK" value="" type="5" typeOther="Key" />
+<Method value="Message encrypt(Message msg, Key k)" />
+<Method value="Message decrypt(Message msg, Key k)" />
+<Method value="Message sencrypt(Message msg, Key k)" />
+<Method value="Message sdecrypt(Message msg, Key k)" />
+<Method value="Message MAC(Message msg, Key k)" />
+<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
+<Method value="Message concat2(Message msg1, Message msg2)" />
+<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
+<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="get2(Message msg, Message msg1, Message msg2)" />
+<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
+<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="Message aencrypt(Message msg, Key k)" />
+<Method value="Message adecrypt(Message msg, Key k)" />
+<Method value="Key pk(Key k)" />
+<Method value="Message sign(Message msg, Key k)" />
+<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
+<Method value="Message cert(Key k, Message msg)" />
+<Method value="bool verifyCert(Message cert, Key k)" />
+<Method value="Key getpk(Message cert)" />
+<Method value="Key DH(Key pubK, Key privK)" />
+<Method value="Message hash(Message msg)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4196" >
-<father id="4209" num="0" />
-<cdparam x="1222" y="368" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5000" id="3589" >
+<father id="3614" num="2" />
+<cdparam x="263" y="108" />
+<sizeparam width="139" height="126" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
-<infoparam name="TGComponent" value="Event timeOut" />
-<TGConnectingPoint num="0" id="4195" />
+<cdrectangleparam minX="0" maxX="299" minY="0" maxY="218" />
+<infoparam name="Block0" value="SmartCard" />
+<TGConnectingPoint num="0" id="3565" />
+<TGConnectingPoint num="1" id="3566" />
+<TGConnectingPoint num="2" id="3567" />
+<TGConnectingPoint num="3" id="3568" />
+<TGConnectingPoint num="4" id="3569" />
+<TGConnectingPoint num="5" id="3570" />
+<TGConnectingPoint num="6" id="3571" />
+<TGConnectingPoint num="7" id="3572" />
+<TGConnectingPoint num="8" id="3573" />
+<TGConnectingPoint num="9" id="3574" />
+<TGConnectingPoint num="10" id="3575" />
+<TGConnectingPoint num="11" id="3576" />
+<TGConnectingPoint num="12" id="3577" />
+<TGConnectingPoint num="13" id="3578" />
+<TGConnectingPoint num="14" id="3579" />
+<TGConnectingPoint num="15" id="3580" />
+<TGConnectingPoint num="16" id="3581" />
+<TGConnectingPoint num="17" id="3582" />
+<TGConnectingPoint num="18" id="3583" />
+<TGConnectingPoint num="19" id="3584" />
+<TGConnectingPoint num="20" id="3585" />
+<TGConnectingPoint num="21" id="3586" />
+<TGConnectingPoint num="22" id="3587" />
+<TGConnectingPoint num="23" id="3588" />
 <extraparam>
-<Prop commName="timeOut" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<CryptoBlock value="true" />
+<Attribute access="0" id="m" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="m2" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="sk" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="receivedData" value="" type="8" typeOther="" />
+<Attribute access="0" id="privK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="pubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="alicePubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="m1" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="sig" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="certOK" value="" type="4" typeOther="" />
+<Attribute access="0" id="interfaceDeviceID" value="" type="8" typeOther="" />
+<Attribute access="0" id="interfaceDevicePubK" value="" type="5" typeOther="Key" />
+<Method value="Message encrypt(Message msg, Key k)" />
+<Method value="Message decrypt(Message msg, Key k)" />
+<Method value="Message sencrypt(Message msg, Key k)" />
+<Method value="Message sdecrypt(Message msg, Key k)" />
+<Method value="Message MAC(Message msg, Key k)" />
+<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" />
+<Method value="Message concat2(Message msg1, Message msg2)" />
+<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" />
+<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="get2(Message msg, Message msg1, Message msg2)" />
+<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" />
+<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" />
+<Method value="Message aencrypt(Message msg, Key k)" />
+<Method value="Message adecrypt(Message msg, Key k)" />
+<Method value="Key pk(Key k)" />
+<Method value="Message sign(Message msg, Key k)" />
+<Method value="bool verifySign(Message msg1, Message sig, Key k)" />
+<Method value="Message cert(Key k, Message msg)" />
+<Method value="bool verifyCert(Message cert, Key k)" />
+<Method value="Key getpk(Message cert)" />
+<Method value="Key DH(Key pubK, Key privK)" />
+<Method value="Message hash(Message msg)" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4198" >
-<father id="4209" num="1" />
-<cdparam x="1222" y="403" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+
+</AVATARBlockDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="5100" id="3616" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
-<infoparam name="TGComponent" value="Request req_Timer" />
-<TGConnectingPoint num="0" id="4197" />
-<extraparam>
-<Prop commName="req_Timer" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4200" >
-<father id="4209" num="2" />
-<cdparam x="1222" y="431" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="3615" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="SmartCard" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="5100" id="3618" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
-<infoparam name="TGComponent" value="Event stop" />
-<TGConnectingPoint num="0" id="4199" />
-<extraparam>
-<Prop commName="stop" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="4228" >
-<father id="4278" num="1" />
-<cdparam x="829" y="362" />
-<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="3617" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="InterfaceDevice" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="5100" id="3620" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="557" minY="-13" maxY="472" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="4210" />
-<TGConnectingPoint num="1" id="4211" />
-<TGConnectingPoint num="2" id="4212" />
-<TGConnectingPoint num="3" id="4213" />
-<TGConnectingPoint num="4" id="4214" />
-<TGConnectingPoint num="5" id="4215" />
-<TGConnectingPoint num="6" id="4216" />
-<TGConnectingPoint num="7" id="4217" />
-<TGConnectingPoint num="8" id="4218" />
-<TGConnectingPoint num="9" id="4219" />
-<TGConnectingPoint num="10" id="4220" />
-<TGConnectingPoint num="11" id="4221" />
-<TGConnectingPoint num="12" id="4222" />
-<TGConnectingPoint num="13" id="4223" />
-<TGConnectingPoint num="14" id="4224" />
-<TGConnectingPoint num="15" id="4225" />
-<TGConnectingPoint num="16" id="4226" />
-<TGConnectingPoint num="17" id="4227" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="4269" >
-<father id="4278" num="2" />
-<cdparam x="931" y="167" />
-<sizeparam width="236" height="317" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="3619" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="CA" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="5100" id="3622" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="334" minY="0" maxY="168" />
-<infoparam name="TGComponent" value="TCPIP" />
-<TGConnectingPoint num="0" id="4261" />
-<TGConnectingPoint num="1" id="4262" />
-<TGConnectingPoint num="2" id="4263" />
-<TGConnectingPoint num="3" id="4264" />
-<TGConnectingPoint num="4" id="4265" />
-<TGConnectingPoint num="5" id="4266" />
-<TGConnectingPoint num="6" id="4267" />
-<TGConnectingPoint num="7" id="4268" />
-<extraparam>
-<Data isAttacker="No" />
-<Attribute access="2" id="wind" value="64" type="0" typeOther="" />
-<Attribute access="2" id="seqNum" value="0" type="0" typeOther="" />
-<Attribute access="2" id="i" value="" type="0" typeOther="" />
-<Attribute access="2" id="j" value="" type="0" typeOther="" />
-<Attribute access="2" id="a" value="0" type="0" typeOther="" />
-<Attribute access="2" id="b" value="0" type="0" typeOther="" />
-<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4230" >
-<father id="4269" num="0" />
-<cdparam x="918" y="185" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="3621" />
+</COMPONENT>
+
+
+</AVATARStateMachineDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="Sysmlsec Methodology" nameTab="SysMLSec_Methodology" >
+<SysmlsecMethodologyDiagramPanel name="SysMLSec_Methodology" minX="10" maxX="2000" minY="10" maxY="1200" zoom="0.8000000000000002" >
+<COMPONENT type="5705" id="3627" >
+<cdparam x="520" y="400" />
+<sizeparam width="144" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Event send" />
-<TGConnectingPoint num="0" id="4229" />
-<extraparam>
-<Prop commName="send" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4232" >
-<father id="4269" num="1" />
-<cdparam x="918" y="235" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Properties" />
+<TGConnectingPoint num="0" id="3623" />
+<TGConnectingPoint num="1" id="3624" />
+<TGConnectingPoint num="2" id="3625" />
+<TGConnectingPoint num="3" id="3626" />
+</COMPONENT>
+
+<COMPONENT type="5706" id="3632" >
+<cdparam x="880" y="480" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Event receive" />
-<TGConnectingPoint num="0" id="4231" />
-<extraparam>
-<Prop commName="receive" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4234" >
-<father id="4269" num="2" />
-<cdparam x="918" y="278" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Prototyping" />
+<TGConnectingPoint num="0" id="3628" />
+<TGConnectingPoint num="1" id="3629" />
+<TGConnectingPoint num="2" id="3630" />
+<TGConnectingPoint num="3" id="3631" />
+</COMPONENT>
+
+<COMPONENT type="5704" id="3641" >
+<cdparam x="800" y="400" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Channel fromPtoT" />
-<TGConnectingPoint num="0" id="4233" />
-<extraparam>
-<Prop commName="fromPtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Design" />
+<TGConnectingPoint num="0" id="3636" />
+<TGConnectingPoint num="1" id="3637" />
+<TGConnectingPoint num="2" id="3638" />
+<TGConnectingPoint num="3" id="3639" />
+<TGConnectingPoint num="4" id="3640" />
+</COMPONENT>
+<SUBCOMPONENT type="5707" id="3633" >
+<father id="3641" num="0" />
+<cdparam x="804" y="432" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="1005" maxX="1005" minY="540" maxY="540" />
+<infoparam name="value " value="BasicSecurityProtocol" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4236" >
-<father id="4269" num="3" />
-<cdparam x="918" y="317" />
-<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5707" id="3634" >
+<father id="3641" num="1" />
+<cdparam x="804" y="444" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="TGComponent" value="Channel fromTtoP" />
-<TGConnectingPoint num="0" id="4235" />
-<extraparam>
-<Prop commName="fromTtoP" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="1005" maxX="1005" minY="555" maxY="555" />
+<infoparam name="value " value="DHSecurityProtocol" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4238" >
-<father id="4269" num="4" />
-<cdparam x="921" y="352" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5707" id="3635" >
+<father id="3641" num="2" />
+<cdparam x="804" y="456" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Request start_TCP_IP" />
-<TGConnectingPoint num="0" id="4237" />
-<extraparam>
-<Prop commName="start_TCP_IP" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="1005" maxX="1005" minY="570" maxY="570" />
+<infoparam name="value " value="DHWithCertificateSecurityProtocol" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4240" >
-<father id="4269" num="5" />
-<cdparam x="921" y="443" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5703" id="3647" >
+<cdparam x="720" y="320" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event send_TCP" />
-<TGConnectingPoint num="0" id="4239" />
-<extraparam>
-<Prop commName="send_TCP" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Analysis" />
+<TGConnectingPoint num="0" id="3642" />
+<TGConnectingPoint num="1" id="3643" />
+<TGConnectingPoint num="2" id="3644" />
+<TGConnectingPoint num="3" id="3645" />
+<TGConnectingPoint num="4" id="3646" />
+</COMPONENT>
+
+<COMPONENT type="5711" id="3652" >
+<cdparam x="709" y="80" />
+<sizeparam width="181" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Communication pattern" />
+<TGConnectingPoint num="0" id="3648" />
+<TGConnectingPoint num="1" id="3649" />
+<TGConnectingPoint num="2" id="3650" />
+<TGConnectingPoint num="3" id="3651" />
+</COMPONENT>
+
+<COMPONENT type="5710" id="3659" >
+<cdparam x="720" y="180" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Mapping" />
+<TGConnectingPoint num="0" id="3653" />
+<TGConnectingPoint num="1" id="3654" />
+<TGConnectingPoint num="2" id="3655" />
+<TGConnectingPoint num="3" id="3656" />
+<TGConnectingPoint num="4" id="3657" />
+<TGConnectingPoint num="5" id="3658" />
+</COMPONENT>
+
+<COMPONENT type="5709" id="3667" >
+<cdparam x="920" y="80" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Architecture view" />
+<TGConnectingPoint num="0" id="3663" />
+<TGConnectingPoint num="1" id="3664" />
+<TGConnectingPoint num="2" id="3665" />
+<TGConnectingPoint num="3" id="3666" />
+</COMPONENT>
+<SUBCOMPONENT type="5707" id="3660" >
+<father id="3667" num="0" />
+<cdparam x="924" y="112" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="1155" maxX="1155" minY="140" maxY="140" />
+<infoparam name="value " value="Mapping1" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4242" >
-<father id="4269" num="6" />
-<cdparam x="921" y="416" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5707" id="3661" >
+<father id="3667" num="1" />
+<cdparam x="924" y="124" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event open, abort, close" />
-<TGConnectingPoint num="0" id="4241" />
-<extraparam>
-<Prop commName="open, abort, close" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="1155" maxX="1155" minY="155" maxY="155" />
+<infoparam name="value " value="Mapping2" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4244" >
-<father id="4269" num="7" />
-<cdparam x="921" y="387" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="5707" id="3662" >
+<father id="3667" num="2" />
+<cdparam x="924" y="136" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel fromTtoA" />
-<TGConnectingPoint num="0" id="4243" />
-<extraparam>
-<Prop commName="fromTtoA" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="1155" maxX="1155" minY="170" maxY="170" />
+<infoparam name="value " value="Mapping2_Sec" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4246" >
-<father id="4269" num="8" />
-<cdparam x="959" y="474" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5713" id="3673" >
+<cdparam x="520" y="80" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel fromAtoT" />
-<TGConnectingPoint num="0" id="4245" />
-<extraparam>
-<Prop commName="fromAtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Functional view" />
+<TGConnectingPoint num="0" id="3669" />
+<TGConnectingPoint num="1" id="3670" />
+<TGConnectingPoint num="2" id="3671" />
+<TGConnectingPoint num="3" id="3672" />
+</COMPONENT>
+<SUBCOMPONENT type="5707" id="3668" >
+<father id="3673" num="0" />
+<cdparam x="524" y="112" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="655" maxX="655" minY="140" maxY="140" />
+<infoparam name="value " value="AppC" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4248" >
-<father id="4269" num="9" />
-<cdparam x="921" y="466" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5719" id="3679" >
+<cdparam x="280" y="120" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event receive_Application" />
-<TGConnectingPoint num="0" id="4247" />
-<extraparam>
-<Prop commName="receive_Application" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Faults" />
+<TGConnectingPoint num="0" id="3674" />
+<TGConnectingPoint num="1" id="3675" />
+<TGConnectingPoint num="2" id="3676" />
+<TGConnectingPoint num="3" id="3677" />
+<TGConnectingPoint num="4" id="3678" />
+</COMPONENT>
+
+<COMPONENT type="5712" id="3686" >
+<cdparam x="280" y="440" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Attacks" />
+<TGConnectingPoint num="0" id="3681" />
+<TGConnectingPoint num="1" id="3682" />
+<TGConnectingPoint num="2" id="3683" />
+<TGConnectingPoint num="3" id="3684" />
+<TGConnectingPoint num="4" id="3685" />
+</COMPONENT>
+<SUBCOMPONENT type="5707" id="3680" >
+<father id="3686" num="0" />
+<cdparam x="284" y="472" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="355" maxX="355" minY="590" maxY="590" />
+<infoparam name="value " value="Attack Trees" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4250" >
-<father id="4269" num="10" />
-<cdparam x="1157" y="370" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5702" id="3696" >
+<cdparam x="280" y="280" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event timeOut" />
-<TGConnectingPoint num="0" id="4249" />
-<extraparam>
-<Prop commName="timeOut" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Requirements" />
+<TGConnectingPoint num="0" id="3688" />
+<TGConnectingPoint num="1" id="3689" />
+<TGConnectingPoint num="2" id="3690" />
+<TGConnectingPoint num="3" id="3691" />
+<TGConnectingPoint num="4" id="3692" />
+<TGConnectingPoint num="5" id="3693" />
+<TGConnectingPoint num="6" id="3694" />
+<TGConnectingPoint num="7" id="3695" />
+</COMPONENT>
+<SUBCOMPONENT type="5707" id="3687" >
+<father id="3696" num="0" />
+<cdparam x="284" y="312" />
+<sizeparam width="8" height="8" minWidth="8" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="355" maxX="355" minY="390" maxY="390" />
+<infoparam name="value " value="Requirements" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4252" >
-<father id="4269" num="11" />
-<cdparam x="1157" y="405" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+<COMPONENT type="5701" id="3701" >
+<cdparam x="40" y="280" />
+<sizeparam width="160" height="56" minWidth="8" minHeight="30" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Request req_Timer" />
-<TGConnectingPoint num="0" id="4251" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="TGComponent" value="Assumptions" />
+<TGConnectingPoint num="0" id="3697" />
+<TGConnectingPoint num="1" id="3698" />
+<TGConnectingPoint num="2" id="3699" />
+<TGConnectingPoint num="3" id="3700" />
+</COMPONENT>
+
+<COMPONENT type="304" id="3718" >
+<cdparam x="504" y="52" />
+<sizeparam width="600" height="200" minWidth="16" minHeight="16" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Info" value="SW/HW Partitioning" />
+<TGConnectingPoint num="0" id="3702" />
+<TGConnectingPoint num="1" id="3703" />
+<TGConnectingPoint num="2" id="3704" />
+<TGConnectingPoint num="3" id="3705" />
+<TGConnectingPoint num="4" id="3706" />
+<TGConnectingPoint num="5" id="3707" />
+<TGConnectingPoint num="6" id="3708" />
+<TGConnectingPoint num="7" id="3709" />
+<TGConnectingPoint num="8" id="3710" />
+<TGConnectingPoint num="9" id="3711" />
+<TGConnectingPoint num="10" id="3712" />
+<TGConnectingPoint num="11" id="3713" />
+<TGConnectingPoint num="12" id="3714" />
+<TGConnectingPoint num="13" id="3715" />
+<TGConnectingPoint num="14" id="3716" />
+<TGConnectingPoint num="15" id="3717" />
 <extraparam>
-<Prop commName="req_Timer" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<TextColor value="-1" />
+<FillColor value="-1" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4254" >
-<father id="4269" num="12" />
-<cdparam x="1157" y="198" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="304" id="3735" >
+<cdparam x="504" y="300" />
+<sizeparam width="600" height="260" minWidth="16" minHeight="16" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel temp" />
-<TGConnectingPoint num="0" id="4253" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Info" value="SW Design" />
+<TGConnectingPoint num="0" id="3719" />
+<TGConnectingPoint num="1" id="3720" />
+<TGConnectingPoint num="2" id="3721" />
+<TGConnectingPoint num="3" id="3722" />
+<TGConnectingPoint num="4" id="3723" />
+<TGConnectingPoint num="5" id="3724" />
+<TGConnectingPoint num="6" id="3725" />
+<TGConnectingPoint num="7" id="3726" />
+<TGConnectingPoint num="8" id="3727" />
+<TGConnectingPoint num="9" id="3728" />
+<TGConnectingPoint num="10" id="3729" />
+<TGConnectingPoint num="11" id="3730" />
+<TGConnectingPoint num="12" id="3731" />
+<TGConnectingPoint num="13" id="3732" />
+<TGConnectingPoint num="14" id="3733" />
+<TGConnectingPoint num="15" id="3734" />
 <extraparam>
-<Prop commName="temp" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<TextColor value="-1" />
+<FillColor value="-1" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4256" >
-<father id="4269" num="13" />
-<cdparam x="1157" y="266" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<COMPONENT type="304" id="3752" >
+<cdparam x="264" y="80" />
+<sizeparam width="192" height="440" minWidth="16" minHeight="16" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Channel temp" />
-<TGConnectingPoint num="0" id="4255" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Info" value="Req / faults / attacks" />
+<TGConnectingPoint num="0" id="3736" />
+<TGConnectingPoint num="1" id="3737" />
+<TGConnectingPoint num="2" id="3738" />
+<TGConnectingPoint num="3" id="3739" />
+<TGConnectingPoint num="4" id="3740" />
+<TGConnectingPoint num="5" id="3741" />
+<TGConnectingPoint num="6" id="3742" />
+<TGConnectingPoint num="7" id="3743" />
+<TGConnectingPoint num="8" id="3744" />
+<TGConnectingPoint num="9" id="3745" />
+<TGConnectingPoint num="10" id="3746" />
+<TGConnectingPoint num="11" id="3747" />
+<TGConnectingPoint num="12" id="3748" />
+<TGConnectingPoint num="13" id="3749" />
+<TGConnectingPoint num="14" id="3750" />
+<TGConnectingPoint num="15" id="3751" />
 <extraparam>
-<Prop commName="temp" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
+<TextColor value="-1" />
+<FillColor value="-1" />
 </extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4258" >
-<father id="4269" num="14" />
-<cdparam x="1157" y="444" />
-<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</COMPONENT>
+
+<CONNECTOR type="6004" id="3754" >
+<cdparam x="1000" y="136" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3753" />
+<P1  x="1000" y="136" id="3663" />
+<P2  x="832" y="180" id="3654" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="6004" id="3756" >
+<cdparam x="800" y="136" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3755" />
+<P1  x="799" y="136" id="3648" />
+<P2  x="800" y="180" id="3655" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="6004" id="3758" >
+<cdparam x="600" y="136" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3757" />
+<P1  x="600" y="136" id="3669" />
+<P2  x="768" y="180" id="3653" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5718" id="3764" >
+<cdparam x="440" y="308" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3761" />
+<TGConnectingPoint num="1" id="3762" />
+<TGConnectingPoint num="2" id="3763" />
+<P1  x="440" y="308" id="3688" />
+<P2  x="592" y="400" id="3623" />
+<Point x="476" y="308" />
+<Point x="476" y="360" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3759" >
+<father id="3764" num="0" />
+<cdparam x="476" y="308" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
-<infoparam name="TGComponent" value="Event stop" />
-<TGConnectingPoint num="0" id="4257" />
-<extraparam>
-<Prop commName="stop" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="4260" >
-<father id="4269" num="15" />
-<cdparam x="1012" y="471" />
-<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="3760" >
+<father id="3764" num="1" />
+<cdparam x="476" y="360" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
-<infoparam name="Primitive port" value="Event opened" />
-<TGConnectingPoint num="0" id="4259" />
-<extraparam>
-<Prop commName="opened" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
+<CONNECTOR type="5718" id="3768" >
+<cdparam x="832" y="456" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3766" />
+<TGConnectingPoint num="1" id="3767" />
+<P1  x="832" y="456" id="3637" />
+<P2  x="880" y="508" id="3628" />
+<Point x="848" y="500" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3765" >
+<father id="3768" num="0" />
+<cdparam x="848" y="500" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
 
-</TMLComponentTaskDiagramPanel>
-
-<TMLActivityDiagramPanel name="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="1150" >
-<CONNECTOR type="115" id="5496" >
-<cdparam x="614" y="1090" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="631" y="895" id="5495" />
-<P2  x="659" y="1019" id="4360" />
+<CONNECTOR type="5718" id="3772" >
+<cdparam x="768" y="376" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3770" />
+<TGConnectingPoint num="1" id="3771" />
+<P1  x="768" y="376" id="3643" />
+<P2  x="800" y="428" id="3636" />
+<Point x="768" y="420" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR>
-<COMPONENT type="1036" id="5493" >
-<cdparam x="624" y="850" />
-<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="3769" >
+<father id="3772" num="0" />
+<cdparam x="768" y="420" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1010" />
-<infoparam name="decrypt" value="null" />
-<TGConnectingPoint num="0" id="5494" />
-<TGConnectingPoint num="1" id="5495" />
-<extraparam>
-<Data secPattern="autoEncrypt_fromSCtoD" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
 
-<CONNECTOR type="115" id="5484" >
-<cdparam x="433" y="608" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="440" y="543" id="5480" />
-<P2  x="476" y="553" id="4341" />
+<CONNECTOR type="5718" id="3774" >
+<cdparam x="376" y="440" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3773" />
+<P1  x="376" y="440" id="3682" />
+<P2  x="376" y="336" id="3690" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<COMPONENT type="1035" id="5478" >
-<cdparam x="433" y="498" />
-<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5718" id="3776" >
+<cdparam x="376" y="176" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3775" />
+<P1  x="376" y="176" id="3675" />
+<P2  x="376" y="280" id="3691" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5718" id="3778" >
+<cdparam x="328" y="280" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3777" />
+<P1  x="328" y="280" id="3692" />
+<P2  x="328" y="176" id="3674" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="5718" id="3780" >
+<cdparam x="328" y="336" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1600" maxHeight="1600" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="&lt;&lt;deriveReqt&gt;&gt;" />
+<TGConnectingPoint num="0" id="3779" />
+<P1  x="328" y="336" id="3689" />
+<P2  x="328" y="440" id="3681" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</SysmlsecMethodologyDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Architecture" nameTab="Mapping2_Sec_enc" >
+<TMLArchiDiagramPanel name="DIPLODOCUS architecture and mapping Diagram" minX="10" maxX="1400" minY="10" maxY="900" attributes="0" masterClockFrequency="200" >
+<COMPONENT type="1102" id="3805" >
+<cdparam x="17" y="403" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="encrypt" value="null" />
-<TGConnectingPoint num="0" id="5479" />
-<TGConnectingPoint num="1" id="5480" />
+<infoparam name="SecureBus1" value="name" />
+<TGConnectingPoint num="0" id="3781" />
+<TGConnectingPoint num="1" id="3782" />
+<TGConnectingPoint num="2" id="3783" />
+<TGConnectingPoint num="3" id="3784" />
+<TGConnectingPoint num="4" id="3785" />
+<TGConnectingPoint num="5" id="3786" />
+<TGConnectingPoint num="6" id="3787" />
+<TGConnectingPoint num="7" id="3788" />
+<TGConnectingPoint num="8" id="3789" />
+<TGConnectingPoint num="9" id="3790" />
+<TGConnectingPoint num="10" id="3791" />
+<TGConnectingPoint num="11" id="3792" />
+<TGConnectingPoint num="12" id="3793" />
+<TGConnectingPoint num="13" id="3794" />
+<TGConnectingPoint num="14" id="3795" />
+<TGConnectingPoint num="15" id="3796" />
+<TGConnectingPoint num="16" id="3797" />
+<TGConnectingPoint num="17" id="3798" />
+<TGConnectingPoint num="18" id="3799" />
+<TGConnectingPoint num="19" id="3800" />
+<TGConnectingPoint num="20" id="3801" />
+<TGConnectingPoint num="21" id="3802" />
+<TGConnectingPoint num="22" id="3803" />
+<TGConnectingPoint num="23" id="3804" />
 <extraparam>
-<Data secContext="autoEncrypt_fromDtoSC" type="Symmetric Encryption" overhead="0" size="" encTime="100" decTime="100" nonce="" key="" algorithm="" />
+<info stereotype="BUS-RR" nodeName="SecureBus1" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="4290" >
-<cdparam x="318" y="433" />
-<sizeparam width="44" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="3830" >
+<cdparam x="55" y="511" />
+<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="end()" />
-<TGConnectingPoint num="0" id="4288" />
-<TGConnectingPoint num="1" id="4289" />
-<latencyCheck />
+<infoparam name="secureMem1" value="name" />
+<TGConnectingPoint num="0" id="3806" />
+<TGConnectingPoint num="1" id="3807" />
+<TGConnectingPoint num="2" id="3808" />
+<TGConnectingPoint num="3" id="3809" />
+<TGConnectingPoint num="4" id="3810" />
+<TGConnectingPoint num="5" id="3811" />
+<TGConnectingPoint num="6" id="3812" />
+<TGConnectingPoint num="7" id="3813" />
+<TGConnectingPoint num="8" id="3814" />
+<TGConnectingPoint num="9" id="3815" />
+<TGConnectingPoint num="10" id="3816" />
+<TGConnectingPoint num="11" id="3817" />
+<TGConnectingPoint num="12" id="3818" />
+<TGConnectingPoint num="13" id="3819" />
+<TGConnectingPoint num="14" id="3820" />
+<TGConnectingPoint num="15" id="3821" />
+<TGConnectingPoint num="16" id="3822" />
+<TGConnectingPoint num="17" id="3823" />
+<TGConnectingPoint num="18" id="3824" />
+<TGConnectingPoint num="19" id="3825" />
+<TGConnectingPoint num="20" id="3826" />
+<TGConnectingPoint num="21" id="3827" />
+<TGConnectingPoint num="22" id="3828" />
+<TGConnectingPoint num="23" id="3829" />
 <extraparam>
-<Data eventName="end" nbOfParams="5" />
+<info stereotype="MEMORY" nodeName="secureMem1" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
-
-<COMPONENT type="1012" id="4298" >
-<cdparam x="546" y="376" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4294" />
-<TGConnectingPoint num="1" id="4295" />
-<TGConnectingPoint num="2" id="4296" />
-<TGConnectingPoint num="3" id="4297" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4291" >
-<father id="4298" num="0" />
-<cdparam x="521" y="386" />
-<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4292" >
-<father id="4298" num="1" />
-<cdparam x="581" y="386" />
-<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4293" >
-<father id="4298" num="2" />
-<cdparam x="566" y="421" />
-<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4306" >
-<cdparam x="644" y="627" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4302" />
-<TGConnectingPoint num="1" id="4303" />
-<TGConnectingPoint num="2" id="4304" />
-<TGConnectingPoint num="3" id="4305" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4299" >
-<father id="4306" num="0" />
-<cdparam x="599" y="637" />
-<sizeparam width="52" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ x==0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4300" >
-<father id="4306" num="1" />
-<cdparam x="679" y="637" />
-<sizeparam width="14" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4301" >
-<father id="4306" num="2" />
-<cdparam x="664" y="672" />
-<sizeparam width="42" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1111" id="5551" >
+<father id="3830" num="0" />
+<cdparam x="59" y="562" />
+<sizeparam width="160" height="40" minWidth="75" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ x&gt;0 ]" />
+<cdrectangleparam minX="0" maxX="16" minY="0" maxY="66" />
+<infoparam name="TGComponent" value="autoEncrypt_fromDtoSC" />
+<TGConnectingPoint num="0" id="5552" />
+<TGConnectingPoint num="1" id="5553" />
+<TGConnectingPoint num="2" id="5554" />
+<TGConnectingPoint num="3" id="5555" />
+<TGConnectingPoint num="4" id="5556" />
+<TGConnectingPoint num="5" id="5557" />
+<TGConnectingPoint num="6" id="5558" />
+<TGConnectingPoint num="7" id="5559" />
+<extraparam>
+<info value="autoEncrypt_fromDtoSC" referenceKeyName="autoEncrypt_fromDtoSC" priority="5" typeName="key" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1000" id="4308" >
-<cdparam x="222" y="58" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="4307" />
-</COMPONENT>
-
-<COMPONENT type="1007" id="4311" >
-<cdparam x="188" y="137" />
-<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1111" id="5533" >
+<father id="3830" num="1" />
+<cdparam x="55" y="511" />
+<sizeparam width="160" height="40" minWidth="75" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="activation()" />
-<TGConnectingPoint num="0" id="4309" />
-<TGConnectingPoint num="1" id="4310" />
+<cdrectangleparam minX="0" maxX="16" minY="0" maxY="66" />
+<infoparam name="TGComponent" value="autoEncrypt_fromSCtoD" />
+<TGConnectingPoint num="0" id="5534" />
+<TGConnectingPoint num="1" id="5535" />
+<TGConnectingPoint num="2" id="5536" />
+<TGConnectingPoint num="3" id="5537" />
+<TGConnectingPoint num="4" id="5538" />
+<TGConnectingPoint num="5" id="5539" />
+<TGConnectingPoint num="6" id="5540" />
+<TGConnectingPoint num="7" id="5541" />
 <extraparam>
-<Data requestName="activation" nbOfParams="5" />
+<info value="autoEncrypt_fromSCtoD" referenceKeyName="autoEncrypt_fromSCtoD" priority="5" typeName="key" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="4314" >
-<cdparam x="202" y="237" />
-<sizeparam width="53" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="3855" >
+<cdparam x="309" y="358" />
+<sizeparam width="189" height="131" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="reset()" />
-<TGConnectingPoint num="0" id="4312" />
-<TGConnectingPoint num="1" id="4313" />
-<latencyCheck />
+<infoparam name="Memory0" value="name" />
+<TGConnectingPoint num="0" id="3831" />
+<TGConnectingPoint num="1" id="3832" />
+<TGConnectingPoint num="2" id="3833" />
+<TGConnectingPoint num="3" id="3834" />
+<TGConnectingPoint num="4" id="3835" />
+<TGConnectingPoint num="5" id="3836" />
+<TGConnectingPoint num="6" id="3837" />
+<TGConnectingPoint num="7" id="3838" />
+<TGConnectingPoint num="8" id="3839" />
+<TGConnectingPoint num="9" id="3840" />
+<TGConnectingPoint num="10" id="3841" />
+<TGConnectingPoint num="11" id="3842" />
+<TGConnectingPoint num="12" id="3843" />
+<TGConnectingPoint num="13" id="3844" />
+<TGConnectingPoint num="14" id="3845" />
+<TGConnectingPoint num="15" id="3846" />
+<TGConnectingPoint num="16" id="3847" />
+<TGConnectingPoint num="17" id="3848" />
+<TGConnectingPoint num="18" id="3849" />
+<TGConnectingPoint num="19" id="3850" />
+<TGConnectingPoint num="20" id="3851" />
+<TGConnectingPoint num="21" id="3852" />
+<TGConnectingPoint num="22" id="3853" />
+<TGConnectingPoint num="23" id="3854" />
 <extraparam>
-<Data eventName="reset" nbOfParams="5" />
+<info stereotype="MEMORY" nodeName="Memory0" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="4317" >
-<cdparam x="168" y="288" />
-<sizeparam width="120" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1102" id="3880" >
+<cdparam x="278" y="269" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="answerToReset() " />
-<TGConnectingPoint num="0" id="4315" />
-<TGConnectingPoint num="1" id="4316" />
+<infoparam name="Bus0" value="name" />
+<TGConnectingPoint num="0" id="3856" />
+<TGConnectingPoint num="1" id="3857" />
+<TGConnectingPoint num="2" id="3858" />
+<TGConnectingPoint num="3" id="3859" />
+<TGConnectingPoint num="4" id="3860" />
+<TGConnectingPoint num="5" id="3861" />
+<TGConnectingPoint num="6" id="3862" />
+<TGConnectingPoint num="7" id="3863" />
+<TGConnectingPoint num="8" id="3864" />
+<TGConnectingPoint num="9" id="3865" />
+<TGConnectingPoint num="10" id="3866" />
+<TGConnectingPoint num="11" id="3867" />
+<TGConnectingPoint num="12" id="3868" />
+<TGConnectingPoint num="13" id="3869" />
+<TGConnectingPoint num="14" id="3870" />
+<TGConnectingPoint num="15" id="3871" />
+<TGConnectingPoint num="16" id="3872" />
+<TGConnectingPoint num="17" id="3873" />
+<TGConnectingPoint num="18" id="3874" />
+<TGConnectingPoint num="19" id="3875" />
+<TGConnectingPoint num="20" id="3876" />
+<TGConnectingPoint num="21" id="3877" />
+<TGConnectingPoint num="22" id="3878" />
+<TGConnectingPoint num="23" id="3879" />
 <extraparam>
-<Data eventName="answerToReset" nbOfParams="5" />
+<info stereotype="BUS-RR" nodeName="Bus0" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="5"  privacy="0"  referenceAttack="ReadDataFromBus" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="4320" >
-<cdparam x="207" y="337" />
-<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="3914" >
+<cdparam x="574" y="227" />
+<sizeparam width="174" height="135" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="pTS()" />
-<TGConnectingPoint num="0" id="4318" />
-<TGConnectingPoint num="1" id="4319" />
+<infoparam name="CPU2" value="name" />
+<TGConnectingPoint num="0" id="3890" />
+<TGConnectingPoint num="1" id="3891" />
+<TGConnectingPoint num="2" id="3892" />
+<TGConnectingPoint num="3" id="3893" />
+<TGConnectingPoint num="4" id="3894" />
+<TGConnectingPoint num="5" id="3895" />
+<TGConnectingPoint num="6" id="3896" />
+<TGConnectingPoint num="7" id="3897" />
+<TGConnectingPoint num="8" id="3898" />
+<TGConnectingPoint num="9" id="3899" />
+<TGConnectingPoint num="10" id="3900" />
+<TGConnectingPoint num="11" id="3901" />
+<TGConnectingPoint num="12" id="3902" />
+<TGConnectingPoint num="13" id="3903" />
+<TGConnectingPoint num="14" id="3904" />
+<TGConnectingPoint num="15" id="3905" />
+<TGConnectingPoint num="16" id="3906" />
+<TGConnectingPoint num="17" id="3907" />
+<TGConnectingPoint num="18" id="3908" />
+<TGConnectingPoint num="19" id="3909" />
+<TGConnectingPoint num="20" id="3910" />
+<TGConnectingPoint num="21" id="3911" />
+<TGConnectingPoint num="22" id="3912" />
+<TGConnectingPoint num="23" id="3913" />
 <extraparam>
-<Data eventName="pTS" nbOfParams="5" />
+<info stereotype="CPURR" nodeName="CPU2" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="4" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-
-<COMPONENT type="1010" id="4323" >
-<cdparam x="387" y="152" />
-<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="3889" >
+<father id="3914" num="0" />
+<cdparam x="604" y="279" />
+<sizeparam width="135" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="pTSConfirm() " />
-<TGConnectingPoint num="0" id="4321" />
-<TGConnectingPoint num="1" id="4322" />
-<breakpoint />
+<cdrectangleparam minX="0" maxX="39" minY="0" maxY="95" />
+<infoparam name="TGComponent" value="AppC_enc::Timer" />
+<TGConnectingPoint num="0" id="3881" />
+<TGConnectingPoint num="1" id="3882" />
+<TGConnectingPoint num="2" id="3883" />
+<TGConnectingPoint num="3" id="3884" />
+<TGConnectingPoint num="4" id="3885" />
+<TGConnectingPoint num="5" id="3886" />
+<TGConnectingPoint num="6" id="3887" />
+<TGConnectingPoint num="7" id="3888" />
 <extraparam>
-<Data eventName="pTSConfirm" nbOfParams="5" />
+<info value="AppC_enc::Timer" taskName="Timer" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="301" id="4340" >
-<cdparam x="453" y="214" />
-<sizeparam width="114" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="3948" >
+<cdparam x="56" y="231" />
+<sizeparam width="165" height="126" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="UML Note" value="data exchange
-" />
-<TGConnectingPoint num="0" id="4324" />
-<TGConnectingPoint num="1" id="4325" />
-<TGConnectingPoint num="2" id="4326" />
-<TGConnectingPoint num="3" id="4327" />
-<TGConnectingPoint num="4" id="4328" />
-<TGConnectingPoint num="5" id="4329" />
-<TGConnectingPoint num="6" id="4330" />
-<TGConnectingPoint num="7" id="4331" />
-<TGConnectingPoint num="8" id="4332" />
-<TGConnectingPoint num="9" id="4333" />
-<TGConnectingPoint num="10" id="4334" />
-<TGConnectingPoint num="11" id="4335" />
-<TGConnectingPoint num="12" id="4336" />
-<TGConnectingPoint num="13" id="4337" />
-<TGConnectingPoint num="14" id="4338" />
-<TGConnectingPoint num="15" id="4339" />
+<infoparam name="CPU1" value="name" />
+<TGConnectingPoint num="0" id="3924" />
+<TGConnectingPoint num="1" id="3925" />
+<TGConnectingPoint num="2" id="3926" />
+<TGConnectingPoint num="3" id="3927" />
+<TGConnectingPoint num="4" id="3928" />
+<TGConnectingPoint num="5" id="3929" />
+<TGConnectingPoint num="6" id="3930" />
+<TGConnectingPoint num="7" id="3931" />
+<TGConnectingPoint num="8" id="3932" />
+<TGConnectingPoint num="9" id="3933" />
+<TGConnectingPoint num="10" id="3934" />
+<TGConnectingPoint num="11" id="3935" />
+<TGConnectingPoint num="12" id="3936" />
+<TGConnectingPoint num="13" id="3937" />
+<TGConnectingPoint num="14" id="3938" />
+<TGConnectingPoint num="15" id="3939" />
+<TGConnectingPoint num="16" id="3940" />
+<TGConnectingPoint num="17" id="3941" />
+<TGConnectingPoint num="18" id="3942" />
+<TGConnectingPoint num="19" id="3943" />
+<TGConnectingPoint num="20" id="3944" />
+<TGConnectingPoint num="21" id="3945" />
+<TGConnectingPoint num="22" id="3946" />
+<TGConnectingPoint num="23" id="3947" />
 <extraparam>
-<Line value="data exchange" />
+<info stereotype="CPURR" nodeName="CPU1" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="5" execiTime="1" execcTime="1" clockRatio="2" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-
-<COMPONENT type="1006" id="4343" >
-<cdparam x="429" y="558" />
-<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="3923" >
+<father id="3948" num="0" />
+<cdparam x="32" y="276" />
+<sizeparam width="189" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="fromDtoSC(1)" />
-<TGConnectingPoint num="0" id="4341" />
-<TGConnectingPoint num="1" id="4342" />
+<cdrectangleparam minX="0" maxX="-24" minY="0" maxY="86" />
+<infoparam name="TGComponent" value="AppC_enc::InterfaceDevice" />
+<TGConnectingPoint num="0" id="3915" />
+<TGConnectingPoint num="1" id="3916" />
+<TGConnectingPoint num="2" id="3917" />
+<TGConnectingPoint num="3" id="3918" />
+<TGConnectingPoint num="4" id="3919" />
+<TGConnectingPoint num="5" id="3920" />
+<TGConnectingPoint num="6" id="3921" />
+<TGConnectingPoint num="7" id="3922" />
 <extraparam>
-<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="autoEncrypt_fromDtoSC" isAttacker="No" />
+<info value="AppC_enc::InterfaceDevice" taskName="InterfaceDevice" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="4346" >
-<cdparam x="419" y="617" />
-<sizeparam width="115" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1100" id="4000" >
+<cdparam x="267" y="59" />
+<sizeparam width="272" height="167" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="data_Ready(x, b)" />
-<TGConnectingPoint num="0" id="4344" />
-<TGConnectingPoint num="1" id="4345" />
-<latencyCheck />
+<infoparam name="CPU0" value="name" />
+<TGConnectingPoint num="0" id="3976" />
+<TGConnectingPoint num="1" id="3977" />
+<TGConnectingPoint num="2" id="3978" />
+<TGConnectingPoint num="3" id="3979" />
+<TGConnectingPoint num="4" id="3980" />
+<TGConnectingPoint num="5" id="3981" />
+<TGConnectingPoint num="6" id="3982" />
+<TGConnectingPoint num="7" id="3983" />
+<TGConnectingPoint num="8" id="3984" />
+<TGConnectingPoint num="9" id="3985" />
+<TGConnectingPoint num="10" id="3986" />
+<TGConnectingPoint num="11" id="3987" />
+<TGConnectingPoint num="12" id="3988" />
+<TGConnectingPoint num="13" id="3989" />
+<TGConnectingPoint num="14" id="3990" />
+<TGConnectingPoint num="15" id="3991" />
+<TGConnectingPoint num="16" id="3992" />
+<TGConnectingPoint num="17" id="3993" />
+<TGConnectingPoint num="18" id="3994" />
+<TGConnectingPoint num="19" id="3995" />
+<TGConnectingPoint num="20" id="3996" />
+<TGConnectingPoint num="21" id="3997" />
+<TGConnectingPoint num="22" id="3998" />
+<TGConnectingPoint num="23" id="3999" />
 <extraparam>
-<Data eventName="data_Ready" nbOfParams="5" />
-<Param index="0" value="x" />
-<Param index="1" value="b" />
+<info stereotype="CPURR" nodeName="CPU0" />
+<attributes nbOfCores="1" byteDataSize="4"  schedulingPolicy="0"  sliceTime="10000"  goIdleTime="10"  maxConsecutiveIdleCycles="10"  pipelineSize="5"  taskSwitchingTime="20"  branchingPredictionPenalty="2"  cacheMiss="18" execiTime="1" execcTime="1" clockRatio="3" MECType="0" encryption="0"/>
 </extraparam>
 </COMPONENT>
-
-<COMPONENT type="1001" id="4348" >
-<cdparam x="466" y="680" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1101" id="3957" >
+<father id="4000" num="0" />
+<cdparam x="377" y="119" />
+<sizeparam width="162" height="37" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4347" />
-</COMPONENT>
-
-<COMPONENT type="1017" id="4351" >
-<cdparam x="588" y="447" />
-<sizeparam width="142" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="notified event" value="x=?data_Ready_SC()" />
-<TGConnectingPoint num="0" id="4349" />
-<TGConnectingPoint num="1" id="4350" />
+<cdrectangleparam minX="0" maxX="110" minY="0" maxY="130" />
+<infoparam name="TGComponent" value="AppC_enc::SmartCard" />
+<TGConnectingPoint num="0" id="3949" />
+<TGConnectingPoint num="1" id="3950" />
+<TGConnectingPoint num="2" id="3951" />
+<TGConnectingPoint num="3" id="3952" />
+<TGConnectingPoint num="4" id="3953" />
+<TGConnectingPoint num="5" id="3954" />
+<TGConnectingPoint num="6" id="3955" />
+<TGConnectingPoint num="7" id="3956" />
 <extraparam>
-<Data eventName="data_Ready_SC" variable="x" />
+<info value="AppC_enc::SmartCard" taskName="SmartCard" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="4353" >
-<cdparam x="569" y="687" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="3966" >
+<father id="4000" num="1" />
+<cdparam x="293" y="165" />
+<sizeparam width="165" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4352" />
-</COMPONENT>
-
-<COMPONENT type="1009" id="4356" >
-<cdparam x="610" y="810" />
-<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="0" maxX="107" minY="0" maxY="127" />
+<infoparam name="TGComponent" value="AppC_enc::Application" />
+<TGConnectingPoint num="0" id="3958" />
+<TGConnectingPoint num="1" id="3959" />
+<TGConnectingPoint num="2" id="3960" />
+<TGConnectingPoint num="3" id="3961" />
+<TGConnectingPoint num="4" id="3962" />
+<TGConnectingPoint num="5" id="3963" />
+<TGConnectingPoint num="6" id="3964" />
+<TGConnectingPoint num="7" id="3965" />
+<extraparam>
+<info value="AppC_enc::Application" taskName="Application" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1101" id="3975" >
+<father id="4000" num="2" />
+<cdparam x="277" y="90" />
+<sizeparam width="134" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read channel" value="fromSCtoD(1) " />
-<TGConnectingPoint num="0" id="4354" />
-<TGConnectingPoint num="1" id="4355" />
+<cdrectangleparam minX="0" maxX="138" minY="0" maxY="127" />
+<infoparam name="TGComponent" value="AppC_enc::TCPIP" />
+<TGConnectingPoint num="0" id="3967" />
+<TGConnectingPoint num="1" id="3968" />
+<TGConnectingPoint num="2" id="3969" />
+<TGConnectingPoint num="3" id="3970" />
+<TGConnectingPoint num="4" id="3971" />
+<TGConnectingPoint num="5" id="3972" />
+<TGConnectingPoint num="6" id="3973" />
+<TGConnectingPoint num="7" id="3974" />
 <extraparam>
-<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="autoEncrypt_fromSCtoD" isAttacker="No" />
+<info value="AppC_enc::TCPIP" taskName="TCPIP" referenceTaskName="AppC_enc" priority="0" operation="" fatherComponentMECType="0" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="1010" id="4359" >
-<cdparam x="600" y="729" />
-<sizeparam width="119" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1102" id="4025" >
+<cdparam x="630" y="38" />
+<sizeparam width="250" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="data_Ready_SC() " />
-<TGConnectingPoint num="0" id="4357" />
-<TGConnectingPoint num="1" id="4358" />
-<accessibility />
+<infoparam name="SecureBus2" value="name" />
+<TGConnectingPoint num="0" id="4001" />
+<TGConnectingPoint num="1" id="4002" />
+<TGConnectingPoint num="2" id="4003" />
+<TGConnectingPoint num="3" id="4004" />
+<TGConnectingPoint num="4" id="4005" />
+<TGConnectingPoint num="5" id="4006" />
+<TGConnectingPoint num="6" id="4007" />
+<TGConnectingPoint num="7" id="4008" />
+<TGConnectingPoint num="8" id="4009" />
+<TGConnectingPoint num="9" id="4010" />
+<TGConnectingPoint num="10" id="4011" />
+<TGConnectingPoint num="11" id="4012" />
+<TGConnectingPoint num="12" id="4013" />
+<TGConnectingPoint num="13" id="4014" />
+<TGConnectingPoint num="14" id="4015" />
+<TGConnectingPoint num="15" id="4016" />
+<TGConnectingPoint num="16" id="4017" />
+<TGConnectingPoint num="17" id="4018" />
+<TGConnectingPoint num="18" id="4019" />
+<TGConnectingPoint num="19" id="4020" />
+<TGConnectingPoint num="20" id="4021" />
+<TGConnectingPoint num="21" id="4022" />
+<TGConnectingPoint num="22" id="4023" />
+<TGConnectingPoint num="23" id="4024" />
 <extraparam>
-<Data eventName="data_Ready_SC" nbOfParams="5" />
+<info stereotype="BUS-RR" nodeName="SecureBus2" />
+<attributes byteDataSize="4"  arbitrationPolicy="0"  sliceTime="10000"  pipelineSize="1"  clockRatio="1"  privacy="1"  referenceAttack="ReadDataFromBus" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4361" >
-<cdparam x="649" y="1024" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1105" id="4050" >
+<cdparam x="780" y="123" />
+<sizeparam width="176" height="106" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4360" />
+<infoparam name="secureMem2" value="name" />
+<TGConnectingPoint num="0" id="4026" />
+<TGConnectingPoint num="1" id="4027" />
+<TGConnectingPoint num="2" id="4028" />
+<TGConnectingPoint num="3" id="4029" />
+<TGConnectingPoint num="4" id="4030" />
+<TGConnectingPoint num="5" id="4031" />
+<TGConnectingPoint num="6" id="4032" />
+<TGConnectingPoint num="7" id="4033" />
+<TGConnectingPoint num="8" id="4034" />
+<TGConnectingPoint num="9" id="4035" />
+<TGConnectingPoint num="10" id="4036" />
+<TGConnectingPoint num="11" id="4037" />
+<TGConnectingPoint num="12" id="4038" />
+<TGConnectingPoint num="13" id="4039" />
+<TGConnectingPoint num="14" id="4040" />
+<TGConnectingPoint num="15" id="4041" />
+<TGConnectingPoint num="16" id="4042" />
+<TGConnectingPoint num="17" id="4043" />
+<TGConnectingPoint num="18" id="4044" />
+<TGConnectingPoint num="19" id="4045" />
+<TGConnectingPoint num="20" id="4046" />
+<TGConnectingPoint num="21" id="4047" />
+<TGConnectingPoint num="22" id="4048" />
+<TGConnectingPoint num="23" id="4049" />
+<extraparam>
+<info stereotype="MEMORY" nodeName="secureMem2" />
+<attributes byteDataSize="4"  memorySize="1024"  clockRatio="1"  bufferType="0" />
+</extraparam>
 </COMPONENT>
-
-<COMPONENT type="1014" id="4365" >
-<cdparam x="300" y="287" />
-<sizeparam width="268" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1111" id="5560" >
+<father id="4050" num="0" />
+<cdparam x="789" y="182" />
+<sizeparam width="160" height="40" minWidth="75" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="for loop" value="for(i=0;i&lt;nbOfComputedPackets;i = i +1)" />
-<TGConnectingPoint num="0" id="4362" />
-<TGConnectingPoint num="1" id="4363" />
-<TGConnectingPoint num="2" id="4364" />
+<cdrectangleparam minX="0" maxX="16" minY="0" maxY="66" />
+<infoparam name="TGComponent" value="autoEncrypt_fromDtoSC" />
+<TGConnectingPoint num="0" id="5561" />
+<TGConnectingPoint num="1" id="5562" />
+<TGConnectingPoint num="2" id="5563" />
+<TGConnectingPoint num="3" id="5564" />
+<TGConnectingPoint num="4" id="5565" />
+<TGConnectingPoint num="5" id="5566" />
+<TGConnectingPoint num="6" id="5567" />
+<TGConnectingPoint num="7" id="5568" />
 <extraparam>
-<Data init="i=0" condition="i&lt;nbOfComputedPackets" increment="i = i +1" />
+<info value="autoEncrypt_fromDtoSC" referenceKeyName="autoEncrypt_fromDtoSC" priority="5" typeName="key" />
 </extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="4367" >
-<cdparam x="330" y="587" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1111" id="5542" >
+<father id="4050" num="1" />
+<cdparam x="781" y="127" />
+<sizeparam width="160" height="40" minWidth="75" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4366" />
-</COMPONENT>
+<cdrectangleparam minX="0" maxX="16" minY="0" maxY="66" />
+<infoparam name="TGComponent" value="autoEncrypt_fromSCtoD" />
+<TGConnectingPoint num="0" id="5543" />
+<TGConnectingPoint num="1" id="5544" />
+<TGConnectingPoint num="2" id="5545" />
+<TGConnectingPoint num="3" id="5546" />
+<TGConnectingPoint num="4" id="5547" />
+<TGConnectingPoint num="5" id="5548" />
+<TGConnectingPoint num="6" id="5549" />
+<TGConnectingPoint num="7" id="5550" />
+<extraparam>
+<info value="autoEncrypt_fromSCtoD" referenceKeyName="autoEncrypt_fromSCtoD" priority="5" typeName="key" />
+</extraparam>
+</SUBCOMPONENT>
 
-<CONNECTOR type="115" id="4368" >
-<cdparam x="434" y="177" />
+<CONNECTOR type="125" id="4051" >
+<cdparam x="539" y="100" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="434" y="177" id="4322" />
-<P2  x="434" y="282" id="4362" />
+<infoparam name="connector" value="{info}" />
+<P1  x="539" y="100" id="3987" />
+<P2  x="630" y="63" id="4004" />
 <AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
 </CONNECTOR>
-<CONNECTOR type="115" id="4369" >
-<cdparam x="340" y="568" />
+<CONNECTOR type="125" id="4052" >
+<cdparam x="143" y="511" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="340" y="458" id="4289" />
-<P2  x="340" y="582" id="4366" />
+<infoparam name="connector" value="{info}" />
+<P1  x="143" y="511" id="3807" />
+<P2  x="142" y="453" id="3787" />
 <AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
 </CONNECTOR>
-<CONNECTOR type="115" id="4370" >
-<cdparam x="434" y="312" />
+<CONNECTOR type="125" id="4053" >
+<cdparam x="138" y="357" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="434" y="312" id="4364" />
-<P2  x="340" y="428" id="4288" />
+<infoparam name="connector" value="{info}" />
+<P1  x="138" y="357" id="3930" />
+<P2  x="142" y="403" id="3782" />
 <AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
 </CONNECTOR>
-<CONNECTOR type="115" id="4371" >
-<cdparam x="561" y="301" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="568" y="301" id="4363" />
-<P2  x="561" y="366" id="4294" />
+<CONNECTOR type="125" id="4054" >
+<cdparam x="402" y="367" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Memory0 to Bus0" value="{info}" />
+<P1  x="403" y="358" id="3832" />
+<P2  x="403" y="319" id="3862" />
 <AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
 </CONNECTOR>
-<CONNECTOR type="115" id="4376" >
-<cdparam x="78" y="363" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to wait event" value="null" />
-<P1  x="228" y="362" id="4319" />
-<P2  x="434" y="147" id="4321" />
-<Point x="228" y="382" />
-<Point x="228" y="382" />
-<Point x="286" y="376" />
-<Point x="285" y="127" />
+<CONNECTOR type="125" id="4055" >
+<cdparam x="190" y="300" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU1 to Bus0" value="{info}" />
+<P1  x="221" y="294" id="3928" />
+<P2  x="278" y="294" id="3859" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="4372" >
-<father id="4376" num="0" />
-<cdparam x="228" y="382" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4056" >
+<cdparam x="662" y="310" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU2 to Bus0" value="{info}" />
+<P1  x="574" y="294" id="3893" />
+<P2  x="528" y="294" id="3860" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4057" >
+<cdparam x="388" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from CPU0 to Bus0" value="{info}" />
+<P1  x="403" y="226" id="3982" />
+<P2  x="403" y="269" id="3857" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+<CONNECTOR type="125" id="4058" >
+<cdparam x="812" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4373" >
-<father id="4376" num="1" />
-<cdparam x="228" y="382" />
+<infoparam name="connector" value="{info}" />
+<P1  x="868" y="123" id="4027" />
+<P2  x="755" y="88" id="4007" />
+<AutomaticDrawing  data="true" />
+<extraparam>
+<info priority="0" />
+<spy value="false" />
+</extraparam>
+</CONNECTOR>
+
+</TMLArchiDiagramPanel>
+
+</Modeling>
+
+
+
+
+<Modeling type="TML Component Design" nameTab="AppC_enc" >
+<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="0" maxX="2724" minY="0" maxY="916" channels="true" events="true" requests="true" zoom="1.0000000000000018" >
+<CONNECTOR type="126" id="4059" >
+<cdparam x="535" y="347" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4374" >
-<father id="4376" num="2" />
-<cdparam x="286" y="376" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="556" y="347" id="4227" />
+<P2  x="547" y="382" id="4274" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4061" >
+<cdparam x="820" y="398" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4375" >
-<father id="4376" num="3" />
-<cdparam x="285" y="127" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="1025" y="497" id="4121" />
+<P2  x="761" y="574" id="4242" />
+<Point x="887" y="577" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4060" >
+<father id="4061" num="0" />
+<cdparam x="887" y="577" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<cdrectangleparam minX="0" maxX="1744" minY="0" maxY="587" />
 <infoparam name="point " value="null" />
 </SUBCOMPONENT>
 
-<CONNECTOR type="115" id="4377" >
-<cdparam x="228" y="57" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to send request" value="null" />
-<P1  x="229" y="78" id="4307" />
-<P2  x="228" y="132" id="4309" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="4378" >
-<cdparam x="228" y="162" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to send event" value="null" />
-<P1  x="228" y="162" id="4310" />
-<P2  x="228" y="232" id="4312" />
+<CONNECTOR type="126" id="4062" >
+<cdparam x="568" y="323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="710" y="403" id="4244" />
+<P2  x="693" y="347" id="4205" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4379" >
-<cdparam x="228" y="284" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to send event" value="null" />
-<P1  x="228" y="313" id="4316" />
-<P2  x="228" y="332" id="4318" />
+<CONNECTOR type="126" id="4063" >
+<cdparam x="522" y="390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="521" y="382" id="4269" />
+<P2  x="466" y="335" id="4108" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4380" >
-<cdparam x="528" y="391" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to write channel" value="null" />
-<P1  x="521" y="391" id="4295" />
-<P2  x="440" y="493" id="5479" />
+<CONNECTOR type="126" id="4064" >
+<cdparam x="409" y="124" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="401" y="83" id="4110" />
+<P2  x="593" y="84" id="4229" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4381" >
-<cdparam x="476" y="583" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="476" y="583" id="4342" />
-<P2  x="476" y="612" id="4344" />
+<CONNECTOR type="126" id="4065" >
+<cdparam x="656" y="426" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="816" y="552" id="4248" />
+<P2  x="969" y="495" id="4135" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4382" >
-<cdparam x="471" y="639" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="476" y="642" id="4345" />
-<P2  x="476" y="675" id="4347" />
+<CONNECTOR type="126" id="4066" >
+<cdparam x="656" y="400" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="816" y="519" id="4250" />
+<P2  x="921" y="476" id="4133" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4383" >
-<cdparam x="619" y="642" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="619" y="642" id="4303" />
-<P2  x="579" y="682" id="4352" />
+<CONNECTOR type="126" id="4067" >
+<cdparam x="602" y="327" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="750" y="406" id="4258" />
+<P2  x="828" y="375" id="4163" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4384" >
-<cdparam x="580" y="405" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to notified event" value="null" />
-<P1  x="601" y="391" id="4296" />
-<P2  x="659" y="442" id="4349" />
+<CONNECTOR type="126" id="4068" >
+<cdparam x="689" y="292" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="854" y="375" id="4167" />
+<P2  x="921" y="362" id="4143" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4385" >
-<cdparam x="659" y="582" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from notified event to choice" value="null" />
-<P1  x="659" y="472" id="4350" />
-<P2  x="659" y="617" id="4302" />
+<CONNECTOR type="126" id="4069" >
+<cdparam x="656" y="377" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="816" y="491" id="4254" />
+<P2  x="921" y="453" id="4141" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4386" >
-<cdparam x="659" y="682" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="659" y="682" id="4305" />
-<P2  x="659" y="724" id="4357" />
+<CONNECTOR type="126" id="4070" >
+<cdparam x="656" y="351" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="816" y="458" id="4252" />
+<P2  x="921" y="426" id="4139" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4387" >
-<cdparam x="670" y="754" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="659" y="754" id="4358" />
-<P2  x="659" y="805" id="4354" />
+<CONNECTOR type="126" id="4071" >
+<cdparam x="741" y="296" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="921" y="397" id="4137" />
+<P2  x="816" y="429" id="4256" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4388" >
-<cdparam x="659" y="975" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to stop state" value="null" />
-<P1  x="659" y="835" id="4355" />
-<P2  x="631" y="845" id="5494" />
+<CONNECTOR type="126" id="4072" >
+<cdparam x="735" y="260" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="918" y="330" id="4145" />
+<P2  x="747" y="282" id="4217" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="4389" >
-<cdparam x="228" y="262" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to wait event" value="null" />
-<P1  x="228" y="262" id="4313" />
-<P2  x="228" y="283" id="4315" />
+<CONNECTOR type="126" id="4073" >
+<cdparam x="641" y="230" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="747" y="248" id="4215" />
+<P2  x="918" y="291" id="4147" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
+<CONNECTOR type="126" id="4074" >
+<cdparam x="641" y="195" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="747" y="203" id="4213" />
+<P2  x="918" y="248" id="4149" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4075" >
+<cdparam x="740" y="353" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="828" y="375" id="4162" />
+<P2  x="747" y="314" id="4211" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4076" >
+<cdparam x="460" y="270" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="521" y="303" id="4221" />
+<P2  x="466" y="303" id="4102" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4077" >
+<cdparam x="387" y="129" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="464" y="126" id="4098" />
+<P2  x="524" y="126" id="4209" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4078" >
+<cdparam x="389" y="200" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="466" y="215" id="4104" />
+<P2  x="521" y="215" id="4223" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4079" >
+<cdparam x="460" y="236" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="521" y="260" id="4225" />
+<P2  x="466" y="260" id="4106" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4080" >
+<cdparam x="389" y="163" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="Connector between ports" />
+<P1  x="466" y="169" id="4100" />
+<P2  x="521" y="169" id="4219" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4081" >
+<cdparam x="967" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
+<P1  x="918" y="198" id="4151" />
+<P2  x="747" y="124" id="4231" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4082" >
+<cdparam x="1028" y="535" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
+<P1  x="630" y="345" id="4207" />
+<P2  x="669" y="406" id="4246" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4083" >
+<cdparam x="1308" y="303" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
+<P1  x="1222" y="378" id="4185" />
+<P2  x="1178" y="380" id="4131" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4084" >
+<cdparam x="1172" y="437" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
+<P1  x="1178" y="415" id="4129" />
+<P2  x="1222" y="413" id="4183" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4087" >
+<cdparam x="1041" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
+<P1  x="1178" y="208" id="4127" />
+<P2  x="1178" y="276" id="4125" />
+<Point x="1227" y="207" />
+<Point x="1227" y="247" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4085" >
+<father id="4087" num="0" />
+<cdparam x="1227" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4086" >
+<father id="4087" num="1" />
+<cdparam x="1227" y="247" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
 
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="TCPIP" minX="10" maxX="2900" minY="10" maxY="1900" >
-<COMPONENT type="1008" id="4392" >
-<cdparam x="159" y="424" />
-<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="126" id="4088" >
+<cdparam x="877" y="343" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
+<P1  x="1178" y="454" id="4123" />
+<P2  x="1222" y="441" id="4181" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1205" id="4097" >
+<cdparam x="1155" y="486" />
+<sizeparam width="205" height="105" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="opened()" />
-<TGConnectingPoint num="0" id="4390" />
-<TGConnectingPoint num="1" id="4391" />
+<cdrectangleparam minX="0" maxX="2725" minY="0" maxY="917" />
+<infoparam name="Record component" value="TCP_CTRL" />
+<TGConnectingPoint num="0" id="4089" />
+<TGConnectingPoint num="1" id="4090" />
+<TGConnectingPoint num="2" id="4091" />
+<TGConnectingPoint num="3" id="4092" />
+<TGConnectingPoint num="4" id="4093" />
+<TGConnectingPoint num="5" id="4094" />
+<TGConnectingPoint num="6" id="4095" />
+<TGConnectingPoint num="7" id="4096" />
 <extraparam>
-<Data eventName="opened" nbOfParams="5" />
+<Attribute access="2" id="a" value="" type="0" typeOther="" />
+<Attribute access="2" id="state" value="" type="0" typeOther="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1012" id="4400" >
-<cdparam x="2086" y="1378" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1202" id="4120" >
+<cdparam x="163" y="96" />
+<sizeparam width="290" height="276" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4396" />
-<TGConnectingPoint num="1" id="4397" />
-<TGConnectingPoint num="2" id="4398" />
-<TGConnectingPoint num="3" id="4399" />
+<cdrectangleparam minX="0" maxX="2725" minY="0" maxY="917" />
+<infoparam name="TGComponent" value="InterfaceDevice" />
+<TGConnectingPoint num="0" id="4112" />
+<TGConnectingPoint num="1" id="4113" />
+<TGConnectingPoint num="2" id="4114" />
+<TGConnectingPoint num="3" id="4115" />
+<TGConnectingPoint num="4" id="4116" />
+<TGConnectingPoint num="5" id="4117" />
+<TGConnectingPoint num="6" id="4118" />
+<TGConnectingPoint num="7" id="4119" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+<Attribute access="2" id="i" value="0" type="0" typeOther="" />
+<Attribute access="2" id="nbOfComputedPackets" value="1" type="0" typeOther="" />
+<Attribute access="2" id="b" value="" type="4" typeOther="" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="4393" >
-<father id="4400" num="0" />
-<cdparam x="2061" y="1388" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4099" >
+<father id="4120" num="0" />
+<cdparam x="443" y="116" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="280" minY="-10" maxY="266" />
+<infoparam name="TGComponent" value="Request activation" />
+<TGConnectingPoint num="0" id="4098" />
+<extraparam>
+<Prop commName="activation" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4394" >
-<father id="4400" num="1" />
-<cdparam x="2121" y="1388" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4101" >
+<father id="4120" num="1" />
+<cdparam x="440" y="156" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
+<infoparam name="TGComponent" value="Event data_Ready" />
+<TGConnectingPoint num="0" id="4100" />
+<extraparam>
+<Prop commName="data_Ready" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
+<Type type="2" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4395" >
-<father id="4400" num="2" />
-<cdparam x="2106" y="1426" />
-<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4103" >
+<father id="4120" num="2" />
+<cdparam x="440" y="290" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==10 ]" />
+<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
+<infoparam name="TGComponent" value="Event data_Ready_SC" />
+<TGConnectingPoint num="0" id="4102" />
+<extraparam>
+<Prop commName="data_Ready_SC" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4408" >
-<cdparam x="2262" y="951" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4404" />
-<TGConnectingPoint num="1" id="4405" />
-<TGConnectingPoint num="2" id="4406" />
-<TGConnectingPoint num="3" id="4407" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4401" >
-<father id="4408" num="0" />
-<cdparam x="2212" y="961" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4105" >
+<father id="4120" num="3" />
+<reference id="184" />
+<cdparam x="440" y="202" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==1 ]" />
+<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
+<infoparam name="TGComponent" value="Channel fromDtoSC" />
+<TGConnectingPoint num="0" id="4104" />
+<extraparam>
+<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4402" >
-<father id="4408" num="1" />
-<cdparam x="2301" y="975" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4107" >
+<father id="4120" num="4" />
+<reference id="184" />
+<cdparam x="440" y="247" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ tcpctrl.state ==3 ]" />
+<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
+<infoparam name="TGComponent" value="Channel fromSCtoD" />
+<TGConnectingPoint num="0" id="4106" />
+<extraparam>
+<Prop commName="fromSCtoD" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4403" >
-<father id="4408" num="2" />
-<cdparam x="2282" y="996" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ else ]" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4416" >
-<cdparam x="1981" y="1346" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4412" />
-<TGConnectingPoint num="1" id="4413" />
-<TGConnectingPoint num="2" id="4414" />
-<TGConnectingPoint num="3" id="4415" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4409" >
-<father id="4416" num="0" />
-<cdparam x="1934" y="1356" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==5 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4410" >
-<father id="4416" num="1" />
-<cdparam x="2016" y="1356" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4109" >
+<father id="4120" num="5" />
+<cdparam x="440" y="322" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
+<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
+<TGConnectingPoint num="0" id="4108" />
+<extraparam>
+<Prop commName="answerToReset, pTSConfirm" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4411" >
-<father id="4416" num="2" />
-<cdparam x="2001" y="1391" />
-<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4111" >
+<father id="4120" num="6" />
+<reference id="184" />
+<cdparam x="388" y="83" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state == 7 ]" />
+<cdrectangleparam minX="-13" maxX="277" minY="-13" maxY="263" />
+<infoparam name="TGComponent" value="Event reset, pTS, end" />
+<TGConnectingPoint num="0" id="4110" />
+<extraparam>
+<Prop commName="reset, pTS, end" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="1012" id="4424" >
-<cdparam x="1811" y="1269" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1200" id="4296" >
+<cdparam x="534" y="93" />
+<sizeparam width="935" height="530" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4420" />
-<TGConnectingPoint num="1" id="4421" />
-<TGConnectingPoint num="2" id="4422" />
-<TGConnectingPoint num="3" id="4423" />
+<cdrectangleparam minX="0" maxX="2725" minY="0" maxY="917" />
+<infoparam name="TGComponent" value="SmartCard" />
+<TGConnectingPoint num="0" id="4288" />
+<TGConnectingPoint num="1" id="4289" />
+<TGConnectingPoint num="2" id="4290" />
+<TGConnectingPoint num="3" id="4291" />
+<TGConnectingPoint num="4" id="4292" />
+<TGConnectingPoint num="5" id="4293" />
+<TGConnectingPoint num="6" id="4294" />
+<TGConnectingPoint num="7" id="4295" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="4417" >
-<father id="4424" num="0" />
-<cdparam x="1762" y="1279" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1200" id="4204" >
+<father id="4296" num="0" />
+<cdparam x="841" y="133" />
+<sizeparam width="570" height="485" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
+<cdrectangleparam minX="0" maxX="365" minY="0" maxY="45" />
+<infoparam name="TGComponent" value="TCPIP Entities" />
+<TGConnectingPoint num="0" id="4196" />
+<TGConnectingPoint num="1" id="4197" />
+<TGConnectingPoint num="2" id="4198" />
+<TGConnectingPoint num="3" id="4199" />
+<TGConnectingPoint num="4" id="4200" />
+<TGConnectingPoint num="5" id="4201" />
+<TGConnectingPoint num="6" id="4202" />
+<TGConnectingPoint num="7" id="4203" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4418" >
-<father id="4424" num="1" />
-<cdparam x="1846" y="1279" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="4161" >
+<father id="4204" num="0" />
+<cdparam x="931" y="167" />
+<sizeparam width="236" height="317" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<cdrectangleparam minX="0" maxX="334" minY="0" maxY="168" />
+<infoparam name="TGComponent" value="TCPIP" />
+<TGConnectingPoint num="0" id="4153" />
+<TGConnectingPoint num="1" id="4154" />
+<TGConnectingPoint num="2" id="4155" />
+<TGConnectingPoint num="3" id="4156" />
+<TGConnectingPoint num="4" id="4157" />
+<TGConnectingPoint num="5" id="4158" />
+<TGConnectingPoint num="6" id="4159" />
+<TGConnectingPoint num="7" id="4160" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="wind" value="64" type="0" typeOther="" />
+<Attribute access="2" id="seqNum" value="0" type="0" typeOther="" />
+<Attribute access="2" id="i" value="" type="0" typeOther="" />
+<Attribute access="2" id="j" value="" type="0" typeOther="" />
+<Attribute access="2" id="a" value="0" type="0" typeOther="" />
+<Attribute access="2" id="b" value="0" type="0" typeOther="" />
+<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4419" >
-<father id="4424" num="2" />
-<cdparam x="1831" y="1314" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4122" >
+<father id="4161" num="0" />
+<cdparam x="1012" y="471" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==2 ]" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="Primitive port" value="Event opened" />
+<TGConnectingPoint num="0" id="4121" />
+<extraparam>
+<Prop commName="opened" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4432" >
-<cdparam x="1713" y="1141" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4428" />
-<TGConnectingPoint num="1" id="4429" />
-<TGConnectingPoint num="2" id="4430" />
-<TGConnectingPoint num="3" id="4431" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4425" >
-<father id="4432" num="0" />
-<cdparam x="1688" y="1151" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4124" >
+<father id="4161" num="1" />
+<cdparam x="1157" y="444" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event stop" />
+<TGConnectingPoint num="0" id="4123" />
+<extraparam>
+<Prop commName="stop" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4426" >
-<father id="4432" num="1" />
-<cdparam x="1748" y="1151" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4126" >
+<father id="4161" num="2" />
+<cdparam x="1157" y="266" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel temp" />
+<TGConnectingPoint num="0" id="4125" />
+<extraparam>
+<Prop commName="temp" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4427" >
-<father id="4432" num="2" />
-<cdparam x="1733" y="1186" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4128" >
+<father id="4161" num="3" />
+<cdparam x="1157" y="198" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel temp" />
+<TGConnectingPoint num="0" id="4127" />
+<extraparam>
+<Prop commName="temp" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4436" >
-<cdparam x="1524" y="1254" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4434" />
-<TGConnectingPoint num="1" id="4435" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4433" >
-<father id="4436" num="0" />
-<cdparam x="1539" y="1274" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4130" >
+<father id="4161" num="4" />
+<cdparam x="1157" y="405" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Request req_Timer" />
+<TGConnectingPoint num="0" id="4129" />
+<extraparam>
+<Prop commName="req_Timer" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4440" >
-<cdparam x="1524" y="1064" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4438" />
-<TGConnectingPoint num="1" id="4439" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4437" >
-<father id="4440" num="0" />
-<cdparam x="1538" y="1088" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4132" >
+<father id="4161" num="5" />
+<cdparam x="1157" y="370" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event timeOut" />
+<TGConnectingPoint num="0" id="4131" />
+<extraparam>
+<Prop commName="timeOut" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4448" >
-<cdparam x="1592" y="1006" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4444" />
-<TGConnectingPoint num="1" id="4445" />
-<TGConnectingPoint num="2" id="4446" />
-<TGConnectingPoint num="3" id="4447" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4441" >
-<father id="4448" num="0" />
-<cdparam x="1542" y="1016" />
-<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4134" >
+<father id="4161" num="6" />
+<cdparam x="921" y="466" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state  == 4 ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event receive_Application" />
+<TGConnectingPoint num="0" id="4133" />
+<extraparam>
+<Prop commName="receive_Application" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4442" >
-<father id="4448" num="1" />
-<cdparam x="1627" y="1016" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4136" >
+<father id="4161" num="7" />
+<cdparam x="959" y="474" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4443" >
-<father id="4448" num="2" />
-<cdparam x="1612" y="1051" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel fromAtoT" />
+<TGConnectingPoint num="0" id="4135" />
+<extraparam>
+<Prop commName="fromAtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4456" >
-<cdparam x="1713" y="875" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4452" />
-<TGConnectingPoint num="1" id="4453" />
-<TGConnectingPoint num="2" id="4454" />
-<TGConnectingPoint num="3" id="4455" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4449" >
-<father id="4456" num="0" />
-<cdparam x="1688" y="885" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4138" >
+<father id="4161" num="8" />
+<cdparam x="921" y="387" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Channel fromTtoA" />
+<TGConnectingPoint num="0" id="4137" />
+<extraparam>
+<Prop commName="fromTtoA" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4450" >
-<father id="4456" num="1" />
-<cdparam x="1748" y="885" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4140" >
+<father id="4161" num="9" />
+<cdparam x="921" y="416" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event open, abort, close" />
+<TGConnectingPoint num="0" id="4139" />
+<extraparam>
+<Prop commName="open, abort, close" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4451" >
-<father id="4456" num="2" />
-<cdparam x="1733" y="920" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4142" >
+<father id="4161" num="10" />
+<cdparam x="921" y="443" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Event send_TCP" />
+<TGConnectingPoint num="0" id="4141" />
+<extraparam>
+<Prop commName="send_TCP" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4460" >
-<cdparam x="1636" y="1235" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4458" />
-<TGConnectingPoint num="1" id="4459" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4457" >
-<father id="4460" num="0" />
-<cdparam x="1655" y="1254" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4144" >
+<father id="4161" num="11" />
+<cdparam x="921" y="352" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-10" maxX="226" minY="-10" maxY="307" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="4143" />
+<extraparam>
+<Prop commName="start_TCP_IP" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4464" >
-<cdparam x="2232" y="1059" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4146" >
+<father id="4161" num="12" />
+<cdparam x="918" y="317" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4462" />
-<TGConnectingPoint num="1" id="4463" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4461" >
-<father id="4464" num="0" />
-<cdparam x="2219" y="1083" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Channel fromTtoP" />
+<TGConnectingPoint num="0" id="4145" />
+<extraparam>
+<Prop commName="fromTtoP" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4148" >
+<father id="4161" num="13" />
+<cdparam x="918" y="278" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Channel fromPtoT" />
+<TGConnectingPoint num="0" id="4147" />
+<extraparam>
+<Prop commName="fromPtoT" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4468" >
-<cdparam x="2312" y="1024" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4150" >
+<father id="4161" num="14" />
+<cdparam x="918" y="235" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4466" />
-<TGConnectingPoint num="1" id="4467" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4465" >
-<father id="4468" num="0" />
-<cdparam x="2288" y="1044" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Event receive" />
+<TGConnectingPoint num="0" id="4149" />
+<extraparam>
+<Prop commName="receive" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4152" >
+<father id="4161" num="15" />
+<cdparam x="918" y="185" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-13" maxX="223" minY="-13" maxY="304" />
+<infoparam name="TGComponent" value="Event send" />
+<TGConnectingPoint num="0" id="4151" />
+<extraparam>
+<Prop commName="send" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4476" >
-<cdparam x="1193" y="1020" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1201" id="4180" >
+<father id="4204" num="1" />
+<cdparam x="828" y="362" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4472" />
-<TGConnectingPoint num="1" id="4473" />
-<TGConnectingPoint num="2" id="4474" />
-<TGConnectingPoint num="3" id="4475" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4469" >
-<father id="4476" num="0" />
-<cdparam x="1168" y="1030" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-13" maxX="557" minY="-13" maxY="472" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="4162" />
+<TGConnectingPoint num="1" id="4163" />
+<TGConnectingPoint num="2" id="4164" />
+<TGConnectingPoint num="3" id="4165" />
+<TGConnectingPoint num="4" id="4166" />
+<TGConnectingPoint num="5" id="4167" />
+<TGConnectingPoint num="6" id="4168" />
+<TGConnectingPoint num="7" id="4169" />
+<TGConnectingPoint num="8" id="4170" />
+<TGConnectingPoint num="9" id="4171" />
+<TGConnectingPoint num="10" id="4172" />
+<TGConnectingPoint num="11" id="4173" />
+<TGConnectingPoint num="12" id="4174" />
+<TGConnectingPoint num="13" id="4175" />
+<TGConnectingPoint num="14" id="4176" />
+<TGConnectingPoint num="15" id="4177" />
+<TGConnectingPoint num="16" id="4178" />
+<TGConnectingPoint num="17" id="4179" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="4195" >
+<father id="4204" num="2" />
+<cdparam x="1232" y="328" />
+<sizeparam width="140" height="141" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
+<cdrectangleparam minX="0" maxX="430" minY="0" maxY="344" />
+<infoparam name="TGComponent" value="Timer" />
+<TGConnectingPoint num="0" id="4187" />
+<TGConnectingPoint num="1" id="4188" />
+<TGConnectingPoint num="2" id="4189" />
+<TGConnectingPoint num="3" id="4190" />
+<TGConnectingPoint num="4" id="4191" />
+<TGConnectingPoint num="5" id="4192" />
+<TGConnectingPoint num="6" id="4193" />
+<TGConnectingPoint num="7" id="4194" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4470" >
-<father id="4476" num="1" />
-<cdparam x="1228" y="1030" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4182" >
+<father id="4195" num="0" />
+<cdparam x="1222" y="431" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
+<infoparam name="TGComponent" value="Event stop" />
+<TGConnectingPoint num="0" id="4181" />
+<extraparam>
+<Prop commName="stop" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4471" >
-<father id="4476" num="2" />
-<cdparam x="1213" y="1065" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4184" >
+<father id="4195" num="1" />
+<cdparam x="1222" y="403" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==6 ]" />
+<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
+<infoparam name="TGComponent" value="Request req_Timer" />
+<TGConnectingPoint num="0" id="4183" />
+<extraparam>
+<Prop commName="req_Timer" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4480" >
-<cdparam x="1203" y="1107" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4478" />
-<TGConnectingPoint num="1" id="4479" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4477" >
-<father id="4480" num="0" />
-<cdparam x="1218" y="1127" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4186" >
+<father id="4195" num="2" />
+<cdparam x="1222" y="368" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-10" maxX="130" minY="-10" maxY="131" />
+<infoparam name="TGComponent" value="Event timeOut" />
+<TGConnectingPoint num="0" id="4185" />
+<extraparam>
+<Prop commName="timeOut" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4488" >
-<cdparam x="557" y="712" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4484" />
-<TGConnectingPoint num="1" id="4485" />
-<TGConnectingPoint num="2" id="4486" />
-<TGConnectingPoint num="3" id="4487" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4481" >
-<father id="4488" num="0" />
-<cdparam x="482" y="747" />
-<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1202" id="4241" >
+<father id="4296" num="1" />
+<cdparam x="534" y="97" />
+<sizeparam width="200" height="237" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state == 1 ]" />
+<cdrectangleparam minX="0" maxX="735" minY="0" maxY="293" />
+<infoparam name="TGComponent" value="SmartCard" />
+<TGConnectingPoint num="0" id="4233" />
+<TGConnectingPoint num="1" id="4234" />
+<TGConnectingPoint num="2" id="4235" />
+<TGConnectingPoint num="3" id="4236" />
+<TGConnectingPoint num="4" id="4237" />
+<TGConnectingPoint num="5" id="4238" />
+<TGConnectingPoint num="6" id="4239" />
+<TGConnectingPoint num="7" id="4240" />
+<extraparam>
+<Data isAttacker="No" />
+<Attribute access="2" id="resetType" value="0" type="0" typeOther="" />
+<Attribute access="2" id="a" value="0" type="0" typeOther="" />
+<Attribute access="2" id="b" value="" type="4" typeOther="" />
+<Attribute access="2" id="i" value="0" type="0" typeOther="" />
+<Attribute access="2" id="j" value="0" type="0" typeOther="" />
+<Attribute access="2" id="x" value="0" type="0" typeOther="" />
+<Attribute access="2" id="tcpctrl" value="" type="5" typeOther="TCP_CTRL" />
+<Attribute access="2" id="t" value="" type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4482" >
-<father id="4488" num="1" />
-<cdparam x="592" y="722" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4206" >
+<father id="4241" num="0" />
+<cdparam x="680" y="321" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="Primitive port" value="Event connectionOpened" />
+<TGConnectingPoint num="0" id="4205" />
+<extraparam>
+<Prop commName="connectionOpened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4483" >
-<father id="4488" num="2" />
-<cdparam x="577" y="757" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4208" >
+<father id="4241" num="1" />
+<cdparam x="620" y="324" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
+<cdrectangleparam minX="-10" maxX="190" minY="-10" maxY="227" />
+<infoparam name="TGComponent" value="Request start_Application" />
+<TGConnectingPoint num="0" id="4207" />
+<extraparam>
+<Prop commName="start_Application" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4492" >
-<cdparam x="717" y="694" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4490" />
-<TGConnectingPoint num="1" id="4491" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4489" >
-<father id="4492" num="0" />
-<cdparam x="732" y="714" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4210" >
+<father id="4241" num="2" />
+<cdparam x="524" y="116" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-10" maxX="190" minY="-10" maxY="227" />
+<infoparam name="TGComponent" value="Request activation" />
+<TGConnectingPoint num="0" id="4209" />
+<extraparam>
+<Prop commName="activation" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4496" >
-<cdparam x="938" y="1025" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4494" />
-<TGConnectingPoint num="1" id="4495" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4493" >
-<father id="4496" num="0" />
-<cdparam x="953" y="1045" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4212" >
+<father id="4241" num="3" />
+<cdparam x="721" y="301" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="4211" />
+<extraparam>
+<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4504" >
-<cdparam x="1034" y="939" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4500" />
-<TGConnectingPoint num="1" id="4501" />
-<TGConnectingPoint num="2" id="4502" />
-<TGConnectingPoint num="3" id="4503" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4497" >
-<father id="4504" num="0" />
-<cdparam x="959" y="974" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4214" >
+<father id="4241" num="4" />
+<cdparam x="721" y="190" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event receive" />
+<TGConnectingPoint num="0" id="4213" />
+<extraparam>
+<Prop commName="receive" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4498" >
-<father id="4504" num="1" />
-<cdparam x="1070" y="949" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4216" >
+<father id="4241" num="5" />
+<cdparam x="721" y="235" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromPtoT" />
+<TGConnectingPoint num="0" id="4215" />
+<extraparam>
+<Prop commName="fromPtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4499" >
-<father id="4504" num="2" />
-<cdparam x="1054" y="984" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4218" >
+<father id="4241" num="6" />
+<cdparam x="721" y="269" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state == 5]" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromTtoP" />
+<TGConnectingPoint num="0" id="4217" />
+<extraparam>
+<Prop commName="fromTtoP" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4508" >
-<cdparam x="795" y="1009" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4506" />
-<TGConnectingPoint num="1" id="4507" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4505" >
-<father id="4508" num="0" />
-<cdparam x="818" y="1031" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4220" >
+<father id="4241" num="7" />
+<cdparam x="521" y="156" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event data_Ready" />
+<TGConnectingPoint num="0" id="4219" />
+<extraparam>
+<Prop commName="data_Ready" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
+<Type type="2" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4516" >
-<cdparam x="828" y="869" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4512" />
-<TGConnectingPoint num="1" id="4513" />
-<TGConnectingPoint num="2" id="4514" />
-<TGConnectingPoint num="3" id="4515" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4509" >
-<father id="4516" num="0" />
-<cdparam x="753" y="885" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4222" >
+<father id="4241" num="8" />
+<cdparam x="521" y="290" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==0 ]" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event data_Ready_SC" />
+<TGConnectingPoint num="0" id="4221" />
+<extraparam>
+<Prop commName="data_Ready_SC" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4510" >
-<father id="4516" num="1" />
-<cdparam x="863" y="879" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4224" >
+<father id="4241" num="9" />
+<reference id="184" />
+<cdparam x="521" y="202" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromDtoSC" />
+<TGConnectingPoint num="0" id="4223" />
+<extraparam>
+<Prop commName="fromDtoSC" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="null" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4511" >
-<father id="4516" num="2" />
-<cdparam x="848" y="914" />
-<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4226" >
+<father id="4241" num="10" />
+<reference id="184" />
+<cdparam x="521" y="247" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state==0 ]" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Channel fromSCtoD" />
+<TGConnectingPoint num="0" id="4225" />
+<extraparam>
+<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
 </SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4520" >
-<cdparam x="341" y="764" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4518" />
-<TGConnectingPoint num="1" id="4519" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4517" >
-<father id="4520" num="0" />
-<cdparam x="354" y="785" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="1203" id="4228" >
+<father id="4241" num="11" />
+<cdparam x="543" y="321" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4524" >
-<cdparam x="127" y="794" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event answerToReset, pTSConfirm" />
+<TGConnectingPoint num="0" id="4227" />
+<extraparam>
+<Prop commName="answerToReset, pTSConfirm" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4230" >
+<father id="4241" num="12" />
+<reference id="184" />
+<cdparam x="580" y="84" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4522" />
-<TGConnectingPoint num="1" id="4523" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4521" >
-<father id="4524" num="0" />
-<cdparam x="146" y="818" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event reset, pTS, end" />
+<TGConnectingPoint num="0" id="4229" />
+<extraparam>
+<Prop commName="reset, pTS, end" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4232" >
+<father id="4241" num="13" />
+<cdparam x="721" y="111" />
+<sizeparam width="26" height="26" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
+<cdrectangleparam minX="-13" maxX="187" minY="-13" maxY="224" />
+<infoparam name="TGComponent" value="Event send" />
+<TGConnectingPoint num="0" id="4231" />
+<extraparam>
+<Prop commName="send" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="4268" >
+<father id="4296" num="2" />
+<cdparam x="565" y="416" />
+<sizeparam width="240" height="145" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="695" minY="0" maxY="385" />
+<infoparam name="TGComponent" value="Application" />
+<TGConnectingPoint num="0" id="4260" />
+<TGConnectingPoint num="1" id="4261" />
+<TGConnectingPoint num="2" id="4262" />
+<TGConnectingPoint num="3" id="4263" />
+<TGConnectingPoint num="4" id="4264" />
+<TGConnectingPoint num="5" id="4265" />
+<TGConnectingPoint num="6" id="4266" />
+<TGConnectingPoint num="7" id="4267" />
+<extraparam>
+<Data isAttacker="No" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4243" >
+<father id="4268" num="0" />
+<cdparam x="748" y="548" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
+<infoparam name="Primitive port" value="Event opened" />
+<TGConnectingPoint num="0" id="4242" />
+<extraparam>
+<Prop commName="opened" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4245" >
+<father id="4268" num="1" />
+<cdparam x="697" y="403" />
+<sizeparam width="26" height="26" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="227" minY="-13" maxY="132" />
+<infoparam name="Primitive port" value="Event connectionOpened" />
+<TGConnectingPoint num="0" id="4244" />
+<extraparam>
+<Prop commName="connectionOpened" commType="1" origin="true" finite="true" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4247" >
+<father id="4268" num="2" />
+<cdparam x="659" y="406" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Request start_Application" />
+<TGConnectingPoint num="0" id="4246" />
+<extraparam>
+<Prop commName="start_Application" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4249" >
+<father id="4268" num="3" />
+<cdparam x="795" y="542" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Channel fromAtoT" />
+<TGConnectingPoint num="0" id="4248" />
+<extraparam>
+<Prop commName="fromAtoT" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4251" >
+<father id="4268" num="4" />
+<cdparam x="795" y="509" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Event receive_Application" />
+<TGConnectingPoint num="0" id="4250" />
+<extraparam>
+<Prop commName="receive_Application" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4253" >
+<father id="4268" num="5" />
+<cdparam x="795" y="448" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Event open, abort, close" />
+<TGConnectingPoint num="0" id="4252" />
+<extraparam>
+<Prop commName="open, abort, close" commType="1" origin="true" finite="true" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4255" >
+<father id="4268" num="6" />
+<cdparam x="795" y="481" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Event send_TCP" />
+<TGConnectingPoint num="0" id="4254" />
+<extraparam>
+<Prop commName="send_TCP" commType="1" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4257" >
+<father id="4268" num="7" />
+<cdparam x="795" y="419" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Channel fromTtoA" />
+<TGConnectingPoint num="0" id="4256" />
+<extraparam>
+<Prop commName="fromTtoA" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="4259" >
+<father id="4268" num="8" />
+<cdparam x="740" y="406" />
+<sizeparam width="21" height="21" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="230" minY="-10" maxY="135" />
+<infoparam name="TGComponent" value="Request start_TCP_IP" />
+<TGConnectingPoint num="0" id="4258" />
+<extraparam>
+<Prop commName="start_TCP_IP" commType="2" origin="true" finite="false" blocking="false" maxSamples="1" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="VOID" associatedEvent="VOID" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="4287" >
+<father id="4296" num="3" />
+<cdparam x="521" y="369" />
+<sizeparam width="26" height="26" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-13" maxX="922" minY="-13" maxY="517" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="4269" />
+<TGConnectingPoint num="1" id="4270" />
+<TGConnectingPoint num="2" id="4271" />
+<TGConnectingPoint num="3" id="4272" />
+<TGConnectingPoint num="4" id="4273" />
+<TGConnectingPoint num="5" id="4274" />
+<TGConnectingPoint num="6" id="4275" />
+<TGConnectingPoint num="7" id="4276" />
+<TGConnectingPoint num="8" id="4277" />
+<TGConnectingPoint num="9" id="4278" />
+<TGConnectingPoint num="10" id="4279" />
+<TGConnectingPoint num="11" id="4280" />
+<TGConnectingPoint num="12" id="4281" />
+<TGConnectingPoint num="13" id="4282" />
+<TGConnectingPoint num="14" id="4283" />
+<TGConnectingPoint num="15" id="4284" />
+<TGConnectingPoint num="16" id="4285" />
+<TGConnectingPoint num="17" id="4286" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1012" id="4532" >
-<cdparam x="993" y="780" />
+
+</TMLComponentTaskDiagramPanel>
+
+<TMLActivityDiagramPanel name="InterfaceDevice" minX="10" maxX="1400" minY="10" maxY="1110" >
+<CONNECTOR type="115" id="5507" >
+<cdparam x="614" y="1010" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="631" y="895" id="5506" />
+<P2  x="659" y="979" id="4369" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1036" id="5504" >
+<cdparam x="624" y="850" />
+<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1010" />
+<infoparam name="decrypt" value="null" />
+<TGConnectingPoint num="0" id="5505" />
+<TGConnectingPoint num="1" id="5506" />
+<extraparam>
+<Data secPattern="autoEncrypt_fromSCtoD" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="115" id="5495" >
+<cdparam x="433" y="608" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="466" y="513" id="5491" />
+<P2  x="476" y="553" id="4350" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1035" id="5489" >
+<cdparam x="459" y="468" />
+<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="encrypt" value="null" />
+<TGConnectingPoint num="0" id="5490" />
+<TGConnectingPoint num="1" id="5491" />
+<extraparam>
+<Data secContext="autoEncrypt_fromDtoSC" type="Symmetric Encryption" overhead="0" size="" encTime="100" decTime="100" nonce="" key="" algorithm="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="4299" >
+<cdparam x="320" y="433" />
+<sizeparam width="40" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="end()" />
+<TGConnectingPoint num="0" id="4297" />
+<TGConnectingPoint num="1" id="4298" />
+<latencyCheck />
+<extraparam>
+<Data eventName="end" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1012" id="4307" >
+<cdparam x="546" y="376" />
 <sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4528" />
-<TGConnectingPoint num="1" id="4529" />
-<TGConnectingPoint num="2" id="4530" />
-<TGConnectingPoint num="3" id="4531" />
+<TGConnectingPoint num="0" id="4303" />
+<TGConnectingPoint num="1" id="4304" />
+<TGConnectingPoint num="2" id="4305" />
+<TGConnectingPoint num="3" id="4306" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="4525" >
-<father id="4532" num="0" />
-<cdparam x="949" y="793" />
+<SUBCOMPONENT type="-1" id="4300" >
+<father id="4307" num="0" />
+<cdparam x="521" y="386" />
 <sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
 <infoparam name="guard 1" value="[ ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4526" >
-<father id="4532" num="1" />
-<cdparam x="1028" y="790" />
+<SUBCOMPONENT type="-1" id="4301" >
+<father id="4307" num="1" />
+<cdparam x="581" y="386" />
 <sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
 <infoparam name="guard 2" value="[ ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4527" >
-<father id="4532" num="2" />
-<cdparam x="1013" y="825" />
+<SUBCOMPONENT type="-1" id="4302" >
+<father id="4307" num="2" />
+<cdparam x="566" y="421" />
 <sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
 <infoparam name="guard 3" value="[ ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1013" id="4536" >
-<cdparam x="1003" y="701" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4315" >
+<cdparam x="644" y="627" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4534" />
-<TGConnectingPoint num="1" id="4535" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4533" >
-<father id="4536" num="0" />
-<cdparam x="1018" y="721" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4540" >
-<cdparam x="459" y="783" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4538" />
-<TGConnectingPoint num="1" id="4539" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4537" >
-<father id="4540" num="0" />
-<cdparam x="474" y="802" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4544" >
-<cdparam x="225" y="863" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4542" />
-<TGConnectingPoint num="1" id="4543" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4541" >
-<father id="4544" num="0" />
-<cdparam x="245" y="885" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1013" id="4548" >
-<cdparam x="1044" y="1057" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="4546" />
-<TGConnectingPoint num="1" id="4547" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="4545" >
-<father id="4548" num="0" />
-<cdparam x="1059" y="1077" />
-<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="b" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1012" id="4556" >
-<cdparam x="173" y="486" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4552" />
-<TGConnectingPoint num="1" id="4553" />
-<TGConnectingPoint num="2" id="4554" />
-<TGConnectingPoint num="3" id="4555" />
+<TGConnectingPoint num="0" id="4311" />
+<TGConnectingPoint num="1" id="4312" />
+<TGConnectingPoint num="2" id="4313" />
+<TGConnectingPoint num="3" id="4314" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="4549" >
-<father id="4556" num="0" />
-<cdparam x="98" y="496" />
-<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="4308" >
+<father id="4315" num="0" />
+<cdparam x="599" y="637" />
+<sizeparam width="51" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state==0 ]" />
+<infoparam name="guard 1" value="[ x==0 ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4550" >
-<father id="4556" num="1" />
-<cdparam x="208" y="496" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="4309" >
+<father id="4315" num="1" />
+<cdparam x="679" y="637" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
+<infoparam name="guard 2" value="[ ]" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4551" >
-<father id="4556" num="2" />
-<cdparam x="193" y="531" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="4310" >
+<father id="4315" num="2" />
+<cdparam x="664" y="672" />
+<sizeparam width="41" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
+<infoparam name="guard 3" value="[ x&gt;0 ]" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1012" id="4564" >
-<cdparam x="359" y="192" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="4317" >
+<cdparam x="222" y="58" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4560" />
-<TGConnectingPoint num="1" id="4561" />
-<TGConnectingPoint num="2" id="4562" />
-<TGConnectingPoint num="3" id="4563" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="4316" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="4557" >
-<father id="4564" num="0" />
-<cdparam x="317" y="202" />
-<sizeparam width="81" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.a&gt;0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4558" >
-<father id="4564" num="1" />
-<cdparam x="394" y="202" />
-<sizeparam width="91" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ tcpctrl.a==0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4559" >
-<father id="4564" num="2" />
-<cdparam x="379" y="237" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="4572" >
-<cdparam x="449" y="582" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="4320" >
+<cdparam x="192" y="137" />
+<sizeparam width="72" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4568" />
-<TGConnectingPoint num="1" id="4569" />
-<TGConnectingPoint num="2" id="4570" />
-<TGConnectingPoint num="3" id="4571" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="activation()" />
+<TGConnectingPoint num="0" id="4318" />
+<TGConnectingPoint num="1" id="4319" />
+<extraparam>
+<Data requestName="activation" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="4565" >
-<father id="4572" num="0" />
-<cdparam x="404" y="592" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state ==9 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4566" >
-<father id="4572" num="1" />
-<cdparam x="500" y="599" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4567" >
-<father id="4572" num="2" />
-<cdparam x="469" y="627" />
-<sizeparam width="252" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ (tcpctrl.state ==2) or (tcpctrl.state ==4) ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1012" id="4580" >
-<cdparam x="274" y="564" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4323" >
+<cdparam x="205" y="237" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="4576" />
-<TGConnectingPoint num="1" id="4577" />
-<TGConnectingPoint num="2" id="4578" />
-<TGConnectingPoint num="3" id="4579" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="reset()" />
+<TGConnectingPoint num="0" id="4321" />
+<TGConnectingPoint num="1" id="4322" />
+<latencyCheck />
+<extraparam>
+<Data eventName="reset" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="4573" >
-<father id="4580" num="0" />
-<cdparam x="228" y="574" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ tcpctrl.state == 1]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4574" >
-<father id="4580" num="1" />
-<cdparam x="317" y="584" />
-<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ else ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="4575" >
-<father id="4580" num="2" />
-<cdparam x="306" y="616" />
-<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ tcpctrl.state ==4 ]" />
-</SUBCOMPONENT>
 
-<COMPONENT type="1000" id="4582" >
-<cdparam x="227" y="27" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4326" >
+<cdparam x="173" y="288" />
+<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="4581" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="answerToReset() " />
+<TGConnectingPoint num="0" id="4324" />
+<TGConnectingPoint num="1" id="4325" />
+<extraparam>
+<Data eventName="answerToReset" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="4599" >
-<cdparam x="10" y="30" />
-<sizeparam width="92" height="135" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4329" >
+<cdparam x="208" y="337" />
+<sizeparam width="40" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="0: closed
-1: Listen
-2: SYN rcvd
-3: SYN sent
-4: Estab
-5: Fin wait1
-6: Fin wait2
-7: closing
-8: Time wait
-9: close wait
-10:last ack
-" />
-<TGConnectingPoint num="0" id="4583" />
-<TGConnectingPoint num="1" id="4584" />
-<TGConnectingPoint num="2" id="4585" />
-<TGConnectingPoint num="3" id="4586" />
-<TGConnectingPoint num="4" id="4587" />
-<TGConnectingPoint num="5" id="4588" />
-<TGConnectingPoint num="6" id="4589" />
-<TGConnectingPoint num="7" id="4590" />
-<TGConnectingPoint num="8" id="4591" />
-<TGConnectingPoint num="9" id="4592" />
-<TGConnectingPoint num="10" id="4593" />
-<TGConnectingPoint num="11" id="4594" />
-<TGConnectingPoint num="12" id="4595" />
-<TGConnectingPoint num="13" id="4596" />
-<TGConnectingPoint num="14" id="4597" />
-<TGConnectingPoint num="15" id="4598" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="pTS()" />
+<TGConnectingPoint num="0" id="4327" />
+<TGConnectingPoint num="1" id="4328" />
 <extraparam>
-<Line value="0: closed" />
-<Line value="1: Listen" />
-<Line value="2: SYN rcvd" />
-<Line value="3: SYN sent" />
-<Line value="4: Estab" />
-<Line value="5: Fin wait1" />
-<Line value="6: Fin wait2" />
-<Line value="7: closing" />
-<Line value="8: Time wait" />
-<Line value="9: close wait" />
-<Line value="10:last ack" />
+<Data eventName="pTS" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="4602" >
-<cdparam x="98" y="549" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4332" >
+<cdparam x="390" y="152" />
+<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =1" />
-<TGConnectingPoint num="0" id="4600" />
-<TGConnectingPoint num="1" id="4601" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="pTSConfirm() " />
+<TGConnectingPoint num="0" id="4330" />
+<TGConnectingPoint num="1" id="4331" />
+<breakpoint />
+<extraparam>
+<Data eventName="pTSConfirm" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4604" >
-<cdparam x="138" y="615" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="4349" >
+<cdparam x="453" y="214" />
+<sizeparam width="105" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4603" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="data exchange
+" />
+<TGConnectingPoint num="0" id="4333" />
+<TGConnectingPoint num="1" id="4334" />
+<TGConnectingPoint num="2" id="4335" />
+<TGConnectingPoint num="3" id="4336" />
+<TGConnectingPoint num="4" id="4337" />
+<TGConnectingPoint num="5" id="4338" />
+<TGConnectingPoint num="6" id="4339" />
+<TGConnectingPoint num="7" id="4340" />
+<TGConnectingPoint num="8" id="4341" />
+<TGConnectingPoint num="9" id="4342" />
+<TGConnectingPoint num="10" id="4343" />
+<TGConnectingPoint num="11" id="4344" />
+<TGConnectingPoint num="12" id="4345" />
+<TGConnectingPoint num="13" id="4346" />
+<TGConnectingPoint num="14" id="4347" />
+<TGConnectingPoint num="15" id="4348" />
+<extraparam>
+<Line value="data exchange" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="4607" >
-<cdparam x="967" y="585" />
-<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="4352" >
+<cdparam x="433" y="558" />
+<sizeparam width="87" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="read channel" value="fromPtoT(1) " />
-<TGConnectingPoint num="0" id="4605" />
-<TGConnectingPoint num="1" id="4606" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="fromDtoSC(1)" />
+<TGConnectingPoint num="0" id="4350" />
+<TGConnectingPoint num="1" id="4351" />
 <extraparam>
-<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="autoEncrypt_fromDtoSC" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1014" id="4611" >
-<cdparam x="150" y="85" />
-<sizeparam width="170" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4355" >
+<cdparam x="422" y="617" />
+<sizeparam width="109" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="for loop" value="for(i=0;(tcpctrl.a==0);i = i)" />
-<TGConnectingPoint num="0" id="4608" />
-<TGConnectingPoint num="1" id="4609" />
-<TGConnectingPoint num="2" id="4610" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="data_Ready(x, b)" />
+<TGConnectingPoint num="0" id="4353" />
+<TGConnectingPoint num="1" id="4354" />
+<latencyCheck />
 <extraparam>
-<Data init="i=0" condition="(tcpctrl.a==0)" increment="i = i" />
+<Data eventName="data_Ready" nbOfParams="5" />
+<Param index="0" value="x" />
+<Param index="1" value="b" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4613" >
-<cdparam x="225" y="207" />
+<COMPONENT type="1001" id="4357" >
+<cdparam x="466" y="680" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4612" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="4616" >
-<cdparam x="187" y="144" />
-<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state=0" />
-<TGConnectingPoint num="0" id="4614" />
-<TGConnectingPoint num="1" id="4615" />
-</COMPONENT>
-
-<COMPONENT type="1017" id="4619" >
-<cdparam x="316" y="133" />
-<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="notified event" value="tcpctrl.a=?abort()" />
-<TGConnectingPoint num="0" id="4617" />
-<TGConnectingPoint num="1" id="4618" />
-<extraparam>
-<Data eventName="abort" variable="tcpctrl.a" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1009" id="4622" >
-<cdparam x="692" y="589" />
-<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="read channel" value="temp(1) " />
-<TGConnectingPoint num="0" id="4620" />
-<TGConnectingPoint num="1" id="4621" />
-<extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="4625" >
-<cdparam x="689" y="534" />
-<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="timeOut() " />
-<TGConnectingPoint num="0" id="4623" />
-<TGConnectingPoint num="1" id="4624" />
-<extraparam>
-<Data eventName="timeOut" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="4628" >
-<cdparam x="977" y="528" />
-<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="receive() " />
-<TGConnectingPoint num="0" id="4626" />
-<TGConnectingPoint num="1" id="4627" />
-<extraparam>
-<Data eventName="receive" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="4631" >
-<cdparam x="439" y="492" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="close() " />
-<TGConnectingPoint num="0" id="4629" />
-<TGConnectingPoint num="1" id="4630" />
-<extraparam>
-<Data eventName="close" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="4634" >
-<cdparam x="250" y="468" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="send_TCP() " />
-<TGConnectingPoint num="0" id="4632" />
-<TGConnectingPoint num="1" id="4633" />
-<extraparam>
-<Data eventName="send_TCP" nbOfParams="5" />
-</extraparam>
+<TGConnectingPoint num="0" id="4356" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="4637" >
-<cdparam x="163" y="383" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1017" id="4360" >
+<cdparam x="593" y="447" />
+<sizeparam width="133" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="open() " />
-<TGConnectingPoint num="0" id="4635" />
-<TGConnectingPoint num="1" id="4636" />
-<breakpoint />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="notified event" value="x=?data_Ready_SC()" />
+<TGConnectingPoint num="0" id="4358" />
+<TGConnectingPoint num="1" id="4359" />
 <extraparam>
-<Data eventName="open" nbOfParams="5" />
+<Data eventName="data_Ready_SC" variable="x" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1018" id="4648" >
-<cdparam x="449" y="267" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="select" value="null" />
-<TGConnectingPoint num="0" id="4638" />
-<TGConnectingPoint num="1" id="4639" />
-<TGConnectingPoint num="2" id="4640" />
-<TGConnectingPoint num="3" id="4641" />
-<TGConnectingPoint num="4" id="4642" />
-<TGConnectingPoint num="5" id="4643" />
-<TGConnectingPoint num="6" id="4644" />
-<TGConnectingPoint num="7" id="4645" />
-<TGConnectingPoint num="8" id="4646" />
-<TGConnectingPoint num="9" id="4647" />
-<breakpoint />
-</COMPONENT>
-
-<COMPONENT type="1001" id="4650" >
-<cdparam x="218" y="529" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4649" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="4652" >
-<cdparam x="319" y="614" />
+<COMPONENT type="1001" id="4362" >
+<cdparam x="569" y="687" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4651" />
+<TGConnectingPoint num="0" id="4361" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="4655" >
-<cdparam x="275" y="228" />
-<sizeparam width="53" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="4365" >
+<cdparam x="614" y="810" />
+<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="wait event" value="abort() " />
-<TGConnectingPoint num="0" id="4653" />
-<TGConnectingPoint num="1" id="4654" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="fromSCtoD(1) " />
+<TGConnectingPoint num="0" id="4363" />
+<TGConnectingPoint num="1" id="4364" />
 <extraparam>
-<Data eventName="abort" nbOfParams="5" />
+<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="autoEncrypt_fromSCtoD" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4657" >
-<cdparam x="291" y="290" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4656" />
-</COMPONENT>
-
-<COMPONENT type="301" id="4674" >
-<cdparam x="602" y="86" />
-<sizeparam width="360" height="51" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4368" >
+<cdparam x="604" y="729" />
+<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="b est le nombre d&apos;instructions necessaires pour paquetiser
-ou depaquitiser un paquet TCP
-
-On prend b=1 comme exemple
-" />
-<TGConnectingPoint num="0" id="4658" />
-<TGConnectingPoint num="1" id="4659" />
-<TGConnectingPoint num="2" id="4660" />
-<TGConnectingPoint num="3" id="4661" />
-<TGConnectingPoint num="4" id="4662" />
-<TGConnectingPoint num="5" id="4663" />
-<TGConnectingPoint num="6" id="4664" />
-<TGConnectingPoint num="7" id="4665" />
-<TGConnectingPoint num="8" id="4666" />
-<TGConnectingPoint num="9" id="4667" />
-<TGConnectingPoint num="10" id="4668" />
-<TGConnectingPoint num="11" id="4669" />
-<TGConnectingPoint num="12" id="4670" />
-<TGConnectingPoint num="13" id="4671" />
-<TGConnectingPoint num="14" id="4672" />
-<TGConnectingPoint num="15" id="4673" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="data_Ready_SC() " />
+<TGConnectingPoint num="0" id="4366" />
+<TGConnectingPoint num="1" id="4367" />
+<accessibility />
 <extraparam>
-<Line value="b est le nombre d&apos;instructions necessaires pour paquetiser" />
-<Line value="ou depaquitiser un paquet TCP" />
-<Line value="" />
-<Line value="On prend b=1 comme exemple" />
+<Data eventName="data_Ready_SC" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="4677" >
-<cdparam x="188" y="808" />
-<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="4370" >
+<cdparam x="649" y="984" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="read channel" value="fromAtoT(1) " />
-<TGConnectingPoint num="0" id="4675" />
-<TGConnectingPoint num="1" id="4676" />
-<extraparam>
-<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4369" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="4680" >
-<cdparam x="191" y="1002" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1014" id="4374" >
+<cdparam x="307" y="287" />
+<sizeparam width="254" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4678" />
-<TGConnectingPoint num="1" id="4679" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="for loop" value="for(i=0;i&lt;nbOfComputedPackets;i = i +1)" />
+<TGConnectingPoint num="0" id="4371" />
+<TGConnectingPoint num="1" id="4372" />
+<TGConnectingPoint num="2" id="4373" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data init="i=0" condition="i&lt;nbOfComputedPackets" increment="i = i +1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4682" >
-<cdparam x="220" y="1237" />
+<COMPONENT type="1001" id="4376" >
+<cdparam x="330" y="587" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4681" />
+<TGConnectingPoint num="0" id="4375" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="4685" >
-<cdparam x="414" y="1032" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="4377" >
+<cdparam x="434" y="177" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="434" y="177" id="4331" />
+<P2  x="434" y="282" id="4371" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4378" >
+<cdparam x="340" y="568" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="340" y="458" id="4298" />
+<P2  x="340" y="582" id="4375" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4379" >
+<cdparam x="434" y="312" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="434" y="312" id="4373" />
+<P2  x="340" y="428" id="4297" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4380" >
+<cdparam x="561" y="301" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="561" y="301" id="4372" />
+<P2  x="561" y="366" id="4303" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4385" >
+<cdparam x="78" y="363" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to wait event" value="null" />
+<P1  x="228" y="362" id="4328" />
+<P2  x="434" y="147" id="4330" />
+<Point x="228" y="382" />
+<Point x="228" y="382" />
+<Point x="286" y="376" />
+<Point x="285" y="127" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4381" >
+<father id="4385" num="0" />
+<cdparam x="228" y="382" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =5" />
-<TGConnectingPoint num="0" id="4683" />
-<TGConnectingPoint num="1" id="4684" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="4687" >
-<cdparam x="454" y="1213" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4382" >
+<father id="4385" num="1" />
+<cdparam x="228" y="382" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4686" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="4690" >
-<cdparam x="84" y="1041" />
-<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4383" >
+<father id="4385" num="2" />
+<cdparam x="286" y="376" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state=3" />
-<TGConnectingPoint num="0" id="4688" />
-<TGConnectingPoint num="1" id="4689" />
-</COMPONENT>
-
-<COMPONENT type="1006" id="4693" >
-<cdparam x="93" y="938" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4384" >
+<father id="4385" num="3" />
+<cdparam x="285" y="127" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4691" />
-<TGConnectingPoint num="1" id="4692" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="4696" >
-<cdparam x="292" y="1026" />
-<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =10" />
-<TGConnectingPoint num="0" id="4694" />
-<TGConnectingPoint num="1" id="4695" />
-</COMPONENT>
+<CONNECTOR type="115" id="4386" >
+<cdparam x="228" y="57" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to send request" value="null" />
+<P1  x="229" y="78" id="4316" />
+<P2  x="228" y="132" id="4318" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4387" >
+<cdparam x="228" y="162" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to send event" value="null" />
+<P1  x="228" y="162" id="4319" />
+<P2  x="228" y="232" id="4321" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4388" >
+<cdparam x="228" y="284" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="228" y="313" id="4325" />
+<P2  x="228" y="332" id="4327" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4389" >
+<cdparam x="528" y="391" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to write channel" value="null" />
+<P1  x="521" y="391" id="4304" />
+<P2  x="466" y="463" id="5490" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4390" >
+<cdparam x="476" y="583" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="476" y="583" id="4351" />
+<P2  x="476" y="612" id="4353" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4391" >
+<cdparam x="471" y="639" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="476" y="642" id="4354" />
+<P2  x="476" y="675" id="4356" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4392" >
+<cdparam x="619" y="642" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="619" y="642" id="4312" />
+<P2  x="579" y="682" id="4361" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4393" >
+<cdparam x="580" y="405" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to notified event" value="null" />
+<P1  x="601" y="391" id="4305" />
+<P2  x="659" y="442" id="4358" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4394" >
+<cdparam x="659" y="582" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from notified event to choice" value="null" />
+<P1  x="659" y="472" id="4359" />
+<P2  x="659" y="617" id="4311" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4395" >
+<cdparam x="659" y="682" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="659" y="682" id="4314" />
+<P2  x="659" y="724" id="4366" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4396" >
+<cdparam x="670" y="754" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="659" y="754" id="4367" />
+<P2  x="659" y="805" id="4363" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4397" >
+<cdparam x="659" y="935" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to stop state" value="null" />
+<P1  x="659" y="835" id="4364" />
+<P2  x="631" y="845" id="5505" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4398" >
+<cdparam x="228" y="262" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to wait event" value="null" />
+<P1  x="228" y="262" id="4322" />
+<P2  x="228" y="283" id="4324" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
 
-<COMPONENT type="1001" id="4698" >
-<cdparam x="336" y="1229" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="Application" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1013" id="4402" >
+<cdparam x="505" y="259" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4697" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4400" />
+<TGConnectingPoint num="1" id="4401" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4399" >
+<father id="4402" num="0" />
+<cdparam x="520" y="279" />
+<sizeparam width="16" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="10" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1006" id="4701" >
-<cdparam x="425" y="941" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4405" >
+<cdparam x="479" y="129" />
+<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4699" />
-<TGConnectingPoint num="1" id="4700" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="opened() " />
+<TGConnectingPoint num="0" id="4403" />
+<TGConnectingPoint num="1" id="4404" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="opened" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="4704" >
-<cdparam x="307" y="900" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4408" >
+<cdparam x="449" y="192" />
+<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4702" />
-<TGConnectingPoint num="1" id="4703" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="connectionOpened()" />
+<TGConnectingPoint num="0" id="4406" />
+<TGConnectingPoint num="1" id="4407" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="connectionOpened" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4706" >
-<cdparam x="790" y="1270" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4416" >
+<cdparam x="495" y="514" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4705" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4412" />
+<TGConnectingPoint num="1" id="4413" />
+<TGConnectingPoint num="2" id="4414" />
+<TGConnectingPoint num="3" id="4415" />
 </COMPONENT>
-
-<COMPONENT type="301" id="4723" >
-<cdparam x="998" y="850" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="4409" >
+<father id="4416" num="0" />
+<cdparam x="470" y="524" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Final
-" />
-<TGConnectingPoint num="0" id="4707" />
-<TGConnectingPoint num="1" id="4708" />
-<TGConnectingPoint num="2" id="4709" />
-<TGConnectingPoint num="3" id="4710" />
-<TGConnectingPoint num="4" id="4711" />
-<TGConnectingPoint num="5" id="4712" />
-<TGConnectingPoint num="6" id="4713" />
-<TGConnectingPoint num="7" id="4714" />
-<TGConnectingPoint num="8" id="4715" />
-<TGConnectingPoint num="9" id="4716" />
-<TGConnectingPoint num="10" id="4717" />
-<TGConnectingPoint num="11" id="4718" />
-<TGConnectingPoint num="12" id="4719" />
-<TGConnectingPoint num="13" id="4720" />
-<TGConnectingPoint num="14" id="4721" />
-<TGConnectingPoint num="15" id="4722" />
-<extraparam>
-<Line value="Final" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1011" id="4726" >
-<cdparam x="678" y="965" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4410" >
+<father id="4416" num="1" />
+<cdparam x="530" y="524" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =1" />
-<TGConnectingPoint num="0" id="4724" />
-<TGConnectingPoint num="1" id="4725" />
-</COMPONENT>
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4411" >
+<father id="4416" num="2" />
+<cdparam x="515" y="559" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="4728" >
-<cdparam x="718" y="1032" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="4418" >
+<cdparam x="498" y="33" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4727" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="4417" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="4731" >
-<cdparam x="761" y="1086" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4421" >
+<cdparam x="482" y="71" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4729" />
-<TGConnectingPoint num="1" id="4730" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="open()" />
+<TGConnectingPoint num="0" id="4419" />
+<TGConnectingPoint num="1" id="4420" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="open" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="4748" >
-<cdparam x="781" y="950" />
-<sizeparam width="89" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="4424" >
+<cdparam x="469" y="353" />
+<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Active Open
-" />
-<TGConnectingPoint num="0" id="4732" />
-<TGConnectingPoint num="1" id="4733" />
-<TGConnectingPoint num="2" id="4734" />
-<TGConnectingPoint num="3" id="4735" />
-<TGConnectingPoint num="4" id="4736" />
-<TGConnectingPoint num="5" id="4737" />
-<TGConnectingPoint num="6" id="4738" />
-<TGConnectingPoint num="7" id="4739" />
-<TGConnectingPoint num="8" id="4740" />
-<TGConnectingPoint num="9" id="4741" />
-<TGConnectingPoint num="10" id="4742" />
-<TGConnectingPoint num="11" id="4743" />
-<TGConnectingPoint num="12" id="4744" />
-<TGConnectingPoint num="13" id="4745" />
-<TGConnectingPoint num="14" id="4746" />
-<TGConnectingPoint num="15" id="4747" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="fromAtoT(1)" />
+<TGConnectingPoint num="0" id="4422" />
+<TGConnectingPoint num="1" id="4423" />
 <extraparam>
-<Line value="Active Open" />
+<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="4765" >
-<cdparam x="715" y="907" />
-<sizeparam width="97" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4427" >
+<cdparam x="471" y="399" />
+<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Passive Open
-" />
-<TGConnectingPoint num="0" id="4749" />
-<TGConnectingPoint num="1" id="4750" />
-<TGConnectingPoint num="2" id="4751" />
-<TGConnectingPoint num="3" id="4752" />
-<TGConnectingPoint num="4" id="4753" />
-<TGConnectingPoint num="5" id="4754" />
-<TGConnectingPoint num="6" id="4755" />
-<TGConnectingPoint num="7" id="4756" />
-<TGConnectingPoint num="8" id="4757" />
-<TGConnectingPoint num="9" id="4758" />
-<TGConnectingPoint num="10" id="4759" />
-<TGConnectingPoint num="11" id="4760" />
-<TGConnectingPoint num="12" id="4761" />
-<TGConnectingPoint num="13" id="4762" />
-<TGConnectingPoint num="14" id="4763" />
-<TGConnectingPoint num="15" id="4764" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="send_TCP()" />
+<TGConnectingPoint num="0" id="4425" />
+<TGConnectingPoint num="1" id="4426" />
+<accessibility />
 <extraparam>
-<Line value="Passive Open" />
+<Data eventName="send_TCP" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="4768" >
-<cdparam x="750" y="1193" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =3" />
-<TGConnectingPoint num="0" id="4766" />
-<TGConnectingPoint num="1" id="4767" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="4771" >
-<cdparam x="446" y="768" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="4769" />
-<TGConnectingPoint num="1" id="4770" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="4773" >
-<cdparam x="486" y="830" />
+<COMPONENT type="1001" id="4429" >
+<cdparam x="577" y="648" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4772" />
+<TGConnectingPoint num="0" id="4428" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="4776" >
-<cdparam x="904" y="1123" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4432" >
+<cdparam x="563" y="589" />
+<sizeparam width="49" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4774" />
-<TGConnectingPoint num="1" id="4775" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="abort()" />
+<TGConnectingPoint num="0" id="4430" />
+<TGConnectingPoint num="1" id="4431" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="abort" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="4793" >
-<cdparam x="884" y="1068" />
-<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4435" >
+<cdparam x="410" y="597" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="send Ack of Fin
-" />
-<TGConnectingPoint num="0" id="4777" />
-<TGConnectingPoint num="1" id="4778" />
-<TGConnectingPoint num="2" id="4779" />
-<TGConnectingPoint num="3" id="4780" />
-<TGConnectingPoint num="4" id="4781" />
-<TGConnectingPoint num="5" id="4782" />
-<TGConnectingPoint num="6" id="4783" />
-<TGConnectingPoint num="7" id="4784" />
-<TGConnectingPoint num="8" id="4785" />
-<TGConnectingPoint num="9" id="4786" />
-<TGConnectingPoint num="10" id="4787" />
-<TGConnectingPoint num="11" id="4788" />
-<TGConnectingPoint num="12" id="4789" />
-<TGConnectingPoint num="13" id="4790" />
-<TGConnectingPoint num="14" id="4791" />
-<TGConnectingPoint num="15" id="4792" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="close()" />
+<TGConnectingPoint num="0" id="4433" />
+<TGConnectingPoint num="1" id="4434" />
 <extraparam>
-<Line value="send Ack of Fin" />
+<Data eventName="close" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="4796" >
-<cdparam x="893" y="1234" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="4437" >
+<cdparam x="423" y="646" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =9" />
-<TGConnectingPoint num="0" id="4794" />
-<TGConnectingPoint num="1" id="4795" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="4798" >
-<cdparam x="933" y="1311" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4797" />
+<TGConnectingPoint num="0" id="4436" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="4801" >
-<cdparam x="1010" y="1155" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="4438" >
+<cdparam x="510" y="294" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="510" y="294" id="4401" />
+<P2  x="509" y="348" id="4422" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4439" >
+<cdparam x="508" y="424" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="508" y="424" id="4426" />
+<P2  x="510" y="504" id="4412" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4440" >
+<cdparam x="512" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="512" y="154" id="4404" />
+<P2  x="511" y="187" id="4406" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4441" >
+<cdparam x="594" y="221" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="511" y="217" id="4407" />
+<P2  x="510" y="254" id="4400" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4442" >
+<cdparam x="506" y="36" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to send event" value="null" />
+<P1  x="505" y="53" id="4417" />
+<P2  x="505" y="66" id="4419" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4443" >
+<cdparam x="508" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="505" y="96" id="4420" />
+<P2  x="512" y="124" id="4403" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4444" >
+<cdparam x="509" y="397" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="509" y="378" id="4423" />
+<P2  x="508" y="394" id="4425" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4445" >
+<cdparam x="587" y="614" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="587" y="614" id="4431" />
+<P2  x="587" y="643" id="4428" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4446" >
+<cdparam x="471" y="608" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="470" y="529" id="4413" />
+<P2  x="433" y="592" id="4433" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4447" >
+<cdparam x="433" y="622" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="433" y="622" id="4434" />
+<P2  x="433" y="641" id="4436" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4448" >
+<cdparam x="551" y="608" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="550" y="529" id="4414" />
+<P2  x="587" y="584" id="4430" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="1110" >
+<CONNECTOR type="115" id="5532" >
+<cdparam x="546" y="633" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="563" y="518" id="5531" />
+<P2  x="591" y="567" id="4510" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1036" id="5529" >
+<cdparam x="556" y="473" />
+<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4799" />
-<TGConnectingPoint num="1" id="4800" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1010" />
+<infoparam name="decrypt" value="null" />
+<TGConnectingPoint num="0" id="5530" />
+<TGConnectingPoint num="1" id="5531" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data secPattern="autoEncrypt_fromDtoSC" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="4818" >
-<cdparam x="1000" y="1094" />
-<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="5520" >
+<cdparam x="250" y="773" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="257" y="708" id="5516" />
+<P2  x="293" y="718" id="4507" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1035" id="5514" >
+<cdparam x="250" y="663" />
+<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="send Ack of Fin
-" />
-<TGConnectingPoint num="0" id="4802" />
-<TGConnectingPoint num="1" id="4803" />
-<TGConnectingPoint num="2" id="4804" />
-<TGConnectingPoint num="3" id="4805" />
-<TGConnectingPoint num="4" id="4806" />
-<TGConnectingPoint num="5" id="4807" />
-<TGConnectingPoint num="6" id="4808" />
-<TGConnectingPoint num="7" id="4809" />
-<TGConnectingPoint num="8" id="4810" />
-<TGConnectingPoint num="9" id="4811" />
-<TGConnectingPoint num="10" id="4812" />
-<TGConnectingPoint num="11" id="4813" />
-<TGConnectingPoint num="12" id="4814" />
-<TGConnectingPoint num="13" id="4815" />
-<TGConnectingPoint num="14" id="4816" />
-<TGConnectingPoint num="15" id="4817" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="encrypt" value="null" />
+<TGConnectingPoint num="0" id="5515" />
+<TGConnectingPoint num="1" id="5516" />
 <extraparam>
-<Line value="send Ack of Fin" />
+<Data secContext="autoEncrypt_fromSCtoD" type="Symmetric Encryption" overhead="0" size="" encTime="100" decTime="100" nonce="" key="" algorithm="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="4821" >
-<cdparam x="999" y="1266" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="4450" >
+<cdparam x="430" y="408" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =7" />
-<TGConnectingPoint num="0" id="4819" />
-<TGConnectingPoint num="1" id="4820" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4449" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="4823" >
-<cdparam x="1039" y="1341" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4453" >
+<cdparam x="418" y="364" />
+<sizeparam width="44" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4822" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="end() " />
+<TGConnectingPoint num="0" id="4451" />
+<TGConnectingPoint num="1" id="4452" />
+<extraparam>
+<Data eventName="end" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="4826" >
-<cdparam x="683" y="758" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4456" >
+<cdparam x="238" y="201" />
+<sizeparam width="129" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4824" />
-<TGConnectingPoint num="1" id="4825" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="connectionOpened() " />
+<TGConnectingPoint num="0" id="4454" />
+<TGConnectingPoint num="1" id="4455" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="connectionOpened" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4828" >
-<cdparam x="712" y="865" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="4458" >
+<cdparam x="159" y="66" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4827" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="4457" />
 </COMPONENT>
 
-<COMPONENT type="1007" id="4831" >
-<cdparam x="93" y="1100" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4461" >
+<cdparam x="141" y="129" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="4829" />
-<TGConnectingPoint num="1" id="4830" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="reset() " />
+<TGConnectingPoint num="0" id="4459" />
+<TGConnectingPoint num="1" id="4460" />
 <extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
+<Data eventName="reset" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="4834" >
-<cdparam x="104" y="1167" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4464" >
+<cdparam x="113" y="182" />
+<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="4832" />
-<TGConnectingPoint num="1" id="4833" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="answerToReset()" />
+<TGConnectingPoint num="0" id="4462" />
+<TGConnectingPoint num="1" id="4463" />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="answerToReset" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4836" >
-<cdparam x="122" y="1236" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4467" >
+<cdparam x="144" y="237" />
+<sizeparam width="44" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4835" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="pTS() " />
+<TGConnectingPoint num="0" id="4465" />
+<TGConnectingPoint num="1" id="4466" />
+<extraparam>
+<Data eventName="pTS" nbOfParams="5" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="4839" >
-<cdparam x="191" y="1102" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4470" >
+<cdparam x="124" y="308" />
+<sizeparam width="85" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="4837" />
-<TGConnectingPoint num="1" id="4838" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="pTSConfirm()" />
+<TGConnectingPoint num="0" id="4468" />
+<TGConnectingPoint num="1" id="4469" />
 <extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
+<Data eventName="pTSConfirm" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="4842" >
-<cdparam x="202" y="1169" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="301" id="4487" >
+<cdparam x="376" y="98" />
+<sizeparam width="233" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="4840" />
-<TGConnectingPoint num="1" id="4841" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="UML Note" value="The first two layers of the OSI model 
+are used to communicate between 
+the smart card and the terminal
+" />
+<TGConnectingPoint num="0" id="4471" />
+<TGConnectingPoint num="1" id="4472" />
+<TGConnectingPoint num="2" id="4473" />
+<TGConnectingPoint num="3" id="4474" />
+<TGConnectingPoint num="4" id="4475" />
+<TGConnectingPoint num="5" id="4476" />
+<TGConnectingPoint num="6" id="4477" />
+<TGConnectingPoint num="7" id="4478" />
+<TGConnectingPoint num="8" id="4479" />
+<TGConnectingPoint num="9" id="4480" />
+<TGConnectingPoint num="10" id="4481" />
+<TGConnectingPoint num="11" id="4482" />
+<TGConnectingPoint num="12" id="4483" />
+<TGConnectingPoint num="13" id="4484" />
+<TGConnectingPoint num="14" id="4485" />
+<TGConnectingPoint num="15" id="4486" />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Line value="The first two layers of the OSI model " />
+<Line value="are used to communicate between " />
+<Line value="the smart card and the terminal" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="4845" >
-<cdparam x="307" y="1106" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="4490" >
+<cdparam x="254" y="97" />
+<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="4843" />
-<TGConnectingPoint num="1" id="4844" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="start_TCP_IP()" />
+<TGConnectingPoint num="0" id="4488" />
+<TGConnectingPoint num="1" id="4489" />
 <extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
+<Data requestName="start_TCP_IP" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="4848" >
-<cdparam x="318" y="1173" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="4493" >
+<cdparam x="241" y="148" />
+<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="4846" />
-<TGConnectingPoint num="1" id="4847" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="start_Application()" />
+<TGConnectingPoint num="0" id="4491" />
+<TGConnectingPoint num="1" id="4492" />
+<breakpoint />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data requestName="start_Application" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="4851" >
-<cdparam x="425" y="1090" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="4495" >
+<cdparam x="581" y="760" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="4849" />
-<TGConnectingPoint num="1" id="4850" />
-<extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4494" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="4854" >
-<cdparam x="436" y="1159" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4498" >
+<cdparam x="240" y="571" />
+<sizeparam width="106" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="4852" />
-<TGConnectingPoint num="1" id="4853" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="data_Ready_SC()" />
+<TGConnectingPoint num="0" id="4496" />
+<TGConnectingPoint num="1" id="4497" />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="data_Ready_SC" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="4857" >
-<cdparam x="56" y="861" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="4500" >
+<cdparam x="283" y="757" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="4855" />
-<TGConnectingPoint num="1" id="4856" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4499" />
 </COMPONENT>
 
-<COMPONENT type="1011" id="4860" >
-<cdparam x="154" y="940" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="4503" >
+<cdparam x="252" y="429" />
+<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="4858" />
-<TGConnectingPoint num="1" id="4859" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="fromTtoP(1) " />
+<TGConnectingPoint num="0" id="4501" />
+<TGConnectingPoint num="1" id="4502" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="4863" >
-<cdparam x="388" y="865" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4506" >
+<cdparam x="268" y="385" />
+<sizeparam width="50" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="4861" />
-<TGConnectingPoint num="1" id="4862" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="4866" >
-<cdparam x="270" y="831" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="4864" />
-<TGConnectingPoint num="1" id="4865" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="4869" >
-<cdparam x="207" y="1052" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4867" />
-<TGConnectingPoint num="1" id="4868" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="4872" >
-<cdparam x="323" y="962" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4870" />
-<TGConnectingPoint num="1" id="4871" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="4875" >
-<cdparam x="441" y="983" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4873" />
-<TGConnectingPoint num="1" id="4874" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="4878" >
-<cdparam x="109" y="986" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4876" />
-<TGConnectingPoint num="1" id="4877" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="4881" >
-<cdparam x="699" y="813" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4879" />
-<TGConnectingPoint num="1" id="4880" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="send() " />
+<TGConnectingPoint num="0" id="4504" />
+<TGConnectingPoint num="1" id="4505" />
 <extraparam>
 <Data eventName="send" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="4884" >
-<cdparam x="777" y="1141" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="4509" >
+<cdparam x="250" y="723" />
+<sizeparam width="87" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4882" />
-<TGConnectingPoint num="1" id="4883" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="fromSCtoD(1)" />
+<TGConnectingPoint num="0" id="4507" />
+<TGConnectingPoint num="1" id="4508" />
 <extraparam>
-<Data eventName="send" nbOfParams="5" />
+<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="autoEncrypt_fromSCtoD" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="4887" >
-<cdparam x="920" y="1178" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4512" >
+<cdparam x="562" y="572" />
+<sizeparam width="59" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4885" />
-<TGConnectingPoint num="1" id="4886" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="receive()" />
+<TGConnectingPoint num="0" id="4510" />
+<TGConnectingPoint num="1" id="4511" />
 <extraparam>
-<Data eventName="send" nbOfParams="5" />
+<Data eventName="receive" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="4890" >
-<cdparam x="1026" y="1211" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="4515" >
+<cdparam x="546" y="433" />
+<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4888" />
-<TGConnectingPoint num="1" id="4889" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read channel" value="fromDtoSC(1) " />
+<TGConnectingPoint num="0" id="4513" />
+<TGConnectingPoint num="1" id="4514" />
 <extraparam>
-<Data eventName="send" nbOfParams="5" />
+<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="autoEncrypt_fromDtoSC" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4892" >
-<cdparam x="602" y="762" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4891" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="4894" >
-<cdparam x="873" y="922" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4893" />
-</COMPONENT>
-
-<COMPONENT type="1006" id="4897" >
-<cdparam x="1169" y="1214" />
+<COMPONENT type="1006" id="4518" >
+<cdparam x="552" y="609" />
 <sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4895" />
-<TGConnectingPoint num="1" id="4896" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="write channel" value="fromPtoT(1)" />
+<TGConnectingPoint num="0" id="4516" />
+<TGConnectingPoint num="1" id="4517" />
 <extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="4914" >
-<cdparam x="1159" y="1153" />
-<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4521" >
+<cdparam x="536" y="390" />
+<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="send Ack of Fin
-" />
-<TGConnectingPoint num="0" id="4898" />
-<TGConnectingPoint num="1" id="4899" />
-<TGConnectingPoint num="2" id="4900" />
-<TGConnectingPoint num="3" id="4901" />
-<TGConnectingPoint num="4" id="4902" />
-<TGConnectingPoint num="5" id="4903" />
-<TGConnectingPoint num="6" id="4904" />
-<TGConnectingPoint num="7" id="4905" />
-<TGConnectingPoint num="8" id="4906" />
-<TGConnectingPoint num="9" id="4907" />
-<TGConnectingPoint num="10" id="4908" />
-<TGConnectingPoint num="11" id="4909" />
-<TGConnectingPoint num="12" id="4910" />
-<TGConnectingPoint num="13" id="4911" />
-<TGConnectingPoint num="14" id="4912" />
-<TGConnectingPoint num="15" id="4913" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="data_Ready(t, b) " />
+<TGConnectingPoint num="0" id="4519" />
+<TGConnectingPoint num="1" id="4520" />
+<breakpoint />
 <extraparam>
-<Line value="send Ack of Fin" />
+<Data eventName="data_Ready" nbOfParams="5" />
+<Param index="0" value="t" />
+<Param index="1" value="b" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="4917" >
-<cdparam x="1158" y="1295" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =8" />
-<TGConnectingPoint num="0" id="4915" />
-<TGConnectingPoint num="1" id="4916" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="4919" >
-<cdparam x="1198" y="1471" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4918" />
-</COMPONENT>
-
-<COMPONENT type="1011" id="4922" >
-<cdparam x="1158" y="1402" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="4920" />
-<TGConnectingPoint num="1" id="4921" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="4925" >
-<cdparam x="1185" y="1351" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1014" id="4525" >
+<cdparam x="236" y="261" />
+<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="4923" />
-<TGConnectingPoint num="1" id="4924" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="for loop" value="for(j=0;x==0;j = j)" />
+<TGConnectingPoint num="0" id="4522" />
+<TGConnectingPoint num="1" id="4523" />
+<TGConnectingPoint num="2" id="4524" />
 <extraparam>
-<Data eventName="send" nbOfParams="5" />
+<Data init="j=0" condition="x==0" increment="j = j" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="4927" >
-<cdparam x="1277" y="1070" />
+<COMPONENT type="1001" id="4527" >
+<cdparam x="275" y="309" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4926" />
+<TGConnectingPoint num="0" id="4526" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="4929" >
-<cdparam x="1519" y="1457" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1018" id="4538" >
+<cdparam x="424" y="285" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4928" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="select" value="null" />
+<TGConnectingPoint num="0" id="4528" />
+<TGConnectingPoint num="1" id="4529" />
+<TGConnectingPoint num="2" id="4530" />
+<TGConnectingPoint num="3" id="4531" />
+<TGConnectingPoint num="4" id="4532" />
+<TGConnectingPoint num="5" id="4533" />
+<TGConnectingPoint num="6" id="4534" />
+<TGConnectingPoint num="7" id="4535" />
+<TGConnectingPoint num="8" id="4536" />
+<TGConnectingPoint num="9" id="4537" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="4932" >
-<cdparam x="1489" y="1132" />
-<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="4539" >
+<cdparam x="302" y="227" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="302" y="226" id="4455" />
+<P2  x="298" y="256" id="4522" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4544" >
+<cdparam x="111" y="331" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to send request" value="null" />
+<P1  x="166" y="333" id="4469" />
+<P2  x="298" y="92" id="4488" />
+<Point x="166" y="353" />
+<Point x="225" y="353" />
+<Point x="225" y="72" />
+<Point x="278" y="72" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="4540" >
+<father id="4544" num="0" />
+<cdparam x="166" y="353" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoA(1)" />
-<TGConnectingPoint num="0" id="4930" />
-<TGConnectingPoint num="1" id="4931" />
-<extraparam>
-<Data channelName="fromTtoA" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1006" id="4935" >
-<cdparam x="1490" y="1348" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4541" >
+<father id="4544" num="1" />
+<cdparam x="225" y="353" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4933" />
-<TGConnectingPoint num="1" id="4934" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="4938" >
-<cdparam x="1707" y="1026" />
-<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4542" >
+<father id="4544" num="2" />
+<cdparam x="225" y="72" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="stop()" />
-<TGConnectingPoint num="0" id="4936" />
-<TGConnectingPoint num="1" id="4937" />
-<extraparam>
-<Data eventName="stop" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="301" id="4955" >
-<cdparam x="1759" y="1192" />
-<sizeparam width="86" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4543" >
+<father id="4544" num="3" />
+<cdparam x="278" y="72" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Correct ack
-" />
-<TGConnectingPoint num="0" id="4939" />
-<TGConnectingPoint num="1" id="4940" />
-<TGConnectingPoint num="2" id="4941" />
-<TGConnectingPoint num="3" id="4942" />
-<TGConnectingPoint num="4" id="4943" />
-<TGConnectingPoint num="5" id="4944" />
-<TGConnectingPoint num="6" id="4945" />
-<TGConnectingPoint num="7" id="4946" />
-<TGConnectingPoint num="8" id="4947" />
-<TGConnectingPoint num="9" id="4948" />
-<TGConnectingPoint num="10" id="4949" />
-<TGConnectingPoint num="11" id="4950" />
-<TGConnectingPoint num="12" id="4951" />
-<TGConnectingPoint num="13" id="4952" />
-<TGConnectingPoint num="14" id="4953" />
-<TGConnectingPoint num="15" id="4954" />
-<extraparam>
-<Line value="Correct ack" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
+<infoparam name="point " value="null" />
+</SUBCOMPONENT>
 
-<COMPONENT type="301" id="4972" >
-<cdparam x="1635" y="1168" />
-<sizeparam width="71" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="4545" >
+<cdparam x="166" y="64" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to wait event" value="null" />
+<P1  x="166" y="86" id="4457" />
+<P2  x="166" y="124" id="4459" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4546" >
+<cdparam x="166" y="154" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="166" y="154" id="4460" />
+<P2  x="166" y="177" id="4462" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4547" >
+<cdparam x="312" y="133" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to send request" value="null" />
+<P1  x="298" y="122" id="4489" />
+<P2  x="298" y="143" id="4491" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4548" >
+<cdparam x="286" y="421" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="293" y="410" id="4505" />
+<P2  x="293" y="424" id="4501" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4549" >
+<cdparam x="286" y="586" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to send event" value="null" />
+<P1  x="293" y="454" id="4502" />
+<P2  x="293" y="566" id="4496" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4550" >
+<cdparam x="286" y="748" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="293" y="596" id="4497" />
+<P2  x="257" y="658" id="5515" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4551" >
+<cdparam x="286" y="804" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="293" y="748" id="4508" />
+<P2  x="293" y="752" id="4499" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4552" >
+<cdparam x="607" y="580" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to send event" value="null" />
+<P1  x="591" y="458" id="4514" />
+<P2  x="563" y="468" id="5530" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4553" >
+<cdparam x="606" y="734" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to write channel" value="null" />
+<P1  x="591" y="597" id="4511" />
+<P2  x="591" y="604" id="4516" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4554" >
+<cdparam x="609" y="427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="591" y="415" id="4520" />
+<P2  x="591" y="428" id="4513" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4555" >
+<cdparam x="606" y="796" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="591" y="634" id="4517" />
+<P2  x="591" y="755" id="4494" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4556" >
+<cdparam x="298" y="173" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to for loop" value="null" />
+<P1  x="298" y="173" id="4492" />
+<P2  x="302" y="196" id="4454" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4557" >
+<cdparam x="328" y="291" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to stop state" value="null" />
+<P1  x="298" y="286" id="4524" />
+<P2  x="285" y="304" id="4526" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4558" >
+<cdparam x="385" y="404" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from select to wait event" value="null" />
+<P1  x="399" y="300" id="4529" />
+<P2  x="293" y="380" id="4504" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4559" >
+<cdparam x="533" y="562" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from select to wait event" value="null" />
+<P1  x="479" y="300" id="4530" />
+<P2  x="591" y="385" id="4519" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4560" >
+<cdparam x="391" y="341" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from for loop to select" value="null" />
+<P1  x="361" y="275" id="4523" />
+<P2  x="439" y="275" id="4528" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4561" >
+<cdparam x="164" y="262" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send event" value="null" />
+<P1  x="166" y="262" id="4466" />
+<P2  x="166" y="303" id="4468" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4562" >
+<cdparam x="166" y="207" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to wait event" value="null" />
+<P1  x="166" y="207" id="4463" />
+<P2  x="166" y="232" id="4465" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4563" >
+<cdparam x="439" y="340" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="439" y="340" id="4531" />
+<P2  x="440" y="359" id="4451" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4564" >
+<cdparam x="440" y="389" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="440" y="389" id="4452" />
+<P2  x="440" y="403" id="4449" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="Timer" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1012" id="4572" >
+<cdparam x="509" y="222" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="false ack
-" />
-<TGConnectingPoint num="0" id="4956" />
-<TGConnectingPoint num="1" id="4957" />
-<TGConnectingPoint num="2" id="4958" />
-<TGConnectingPoint num="3" id="4959" />
-<TGConnectingPoint num="4" id="4960" />
-<TGConnectingPoint num="5" id="4961" />
-<TGConnectingPoint num="6" id="4962" />
-<TGConnectingPoint num="7" id="4963" />
-<TGConnectingPoint num="8" id="4964" />
-<TGConnectingPoint num="9" id="4965" />
-<TGConnectingPoint num="10" id="4966" />
-<TGConnectingPoint num="11" id="4967" />
-<TGConnectingPoint num="12" id="4968" />
-<TGConnectingPoint num="13" id="4969" />
-<TGConnectingPoint num="14" id="4970" />
-<TGConnectingPoint num="15" id="4971" />
-<extraparam>
-<Line value="false ack" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4568" />
+<TGConnectingPoint num="1" id="4569" />
+<TGConnectingPoint num="2" id="4570" />
+<TGConnectingPoint num="3" id="4571" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4565" >
+<father id="4572" num="0" />
+<cdparam x="464" y="232" />
+<sizeparam width="51" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ x==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4566" >
+<father id="4572" num="1" />
+<cdparam x="544" y="234" />
+<sizeparam width="41" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ x&gt;0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4567" >
+<father id="4572" num="2" />
+<cdparam x="529" y="267" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1006" id="4975" >
-<cdparam x="1602" y="1299" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="4574" >
+<cdparam x="489" y="26" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="4973" />
-<TGConnectingPoint num="1" id="4974" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="4573" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="4977" >
-<cdparam x="1631" y="1468" />
+<COMPONENT type="1001" id="4576" >
+<cdparam x="417" y="407" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="4976" />
+<TGConnectingPoint num="0" id="4575" />
 </COMPONENT>
 
-<COMPONENT type="301" id="4994" >
-<cdparam x="1469" y="1295" />
-<sizeparam width="127" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="4579" >
+<cdparam x="396" y="339" />
+<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="return acknowldge
-" />
-<TGConnectingPoint num="0" id="4978" />
-<TGConnectingPoint num="1" id="4979" />
-<TGConnectingPoint num="2" id="4980" />
-<TGConnectingPoint num="3" id="4981" />
-<TGConnectingPoint num="4" id="4982" />
-<TGConnectingPoint num="5" id="4983" />
-<TGConnectingPoint num="6" id="4984" />
-<TGConnectingPoint num="7" id="4985" />
-<TGConnectingPoint num="8" id="4986" />
-<TGConnectingPoint num="9" id="4987" />
-<TGConnectingPoint num="10" id="4988" />
-<TGConnectingPoint num="11" id="4989" />
-<TGConnectingPoint num="12" id="4990" />
-<TGConnectingPoint num="13" id="4991" />
-<TGConnectingPoint num="14" id="4992" />
-<TGConnectingPoint num="15" id="4993" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="timeOut()" />
+<TGConnectingPoint num="0" id="4577" />
+<TGConnectingPoint num="1" id="4578" />
 <extraparam>
-<Line value="return acknowldge" />
+<Data eventName="timeOut" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="301" id="5011" >
-<cdparam x="1620" y="927" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="4582" >
+<cdparam x="599" y="300" />
+<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="data
-" />
-<TGConnectingPoint num="0" id="4995" />
-<TGConnectingPoint num="1" id="4996" />
-<TGConnectingPoint num="2" id="4997" />
-<TGConnectingPoint num="3" id="4998" />
-<TGConnectingPoint num="4" id="4999" />
-<TGConnectingPoint num="5" id="5000" />
-<TGConnectingPoint num="6" id="5001" />
-<TGConnectingPoint num="7" id="5002" />
-<TGConnectingPoint num="8" id="5003" />
-<TGConnectingPoint num="9" id="5004" />
-<TGConnectingPoint num="10" id="5005" />
-<TGConnectingPoint num="11" id="5006" />
-<TGConnectingPoint num="12" id="5007" />
-<TGConnectingPoint num="13" id="5008" />
-<TGConnectingPoint num="14" id="5009" />
-<TGConnectingPoint num="15" id="5010" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="stop() " />
+<TGConnectingPoint num="0" id="4580" />
+<TGConnectingPoint num="1" id="4581" />
 <extraparam>
-<Line value="data" />
+<Data eventName="stop" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="5014" >
-<cdparam x="1506" y="1405" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="4584" >
+<cdparam x="612" y="365" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="5012" />
-<TGConnectingPoint num="1" id="5013" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4583" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="5017" >
-<cdparam x="1618" y="1348" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1017" id="4587" >
+<cdparam x="491" y="157" />
+<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="5015" />
-<TGConnectingPoint num="1" id="5016" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="notified event" value="x=?stop()" />
+<TGConnectingPoint num="0" id="4585" />
+<TGConnectingPoint num="1" id="4586" />
 <extraparam>
-<Data eventName="send" nbOfParams="5" />
+<Data eventName="stop" variable="x" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1006" id="5020" >
-<cdparam x="1613" y="1404" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="4588" >
+<cdparam x="496" y="46" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="496" y="46" id="4573" />
+<P2  x="526" y="152" id="4585" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4589" >
+<cdparam x="484" y="237" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="484" y="237" id="4569" />
+<P2  x="427" y="334" id="4577" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4590" >
+<cdparam x="427" y="364" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="427" y="364" id="4578" />
+<P2  x="427" y="402" id="4575" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4591" >
+<cdparam x="622" y="325" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to stop state" value="null" />
+<P1  x="622" y="325" id="4581" />
+<P2  x="622" y="360" id="4583" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4592" >
+<cdparam x="524" y="175" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from notified event to choice" value="null" />
+<P1  x="526" y="182" id="4586" />
+<P2  x="524" y="212" id="4568" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="4593" >
+<cdparam x="564" y="237" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="564" y="237" id="4570" />
+<P2  x="622" y="295" id="4580" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="TCPIP" minX="10" maxX="2900" minY="10" maxY="1900" >
+<COMPONENT type="1008" id="4596" >
+<cdparam x="159" y="424" />
+<sizeparam width="62" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="5018" />
-<TGConnectingPoint num="1" id="5019" />
+<infoparam name="send event" value="opened()" />
+<TGConnectingPoint num="0" id="4594" />
+<TGConnectingPoint num="1" id="4595" />
 <extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+<Data eventName="opened" nbOfParams="5" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="5022" >
-<cdparam x="1730" y="1335" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4604" >
+<cdparam x="2086" y="1378" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5021" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4600" />
+<TGConnectingPoint num="1" id="4601" />
+<TGConnectingPoint num="2" id="4602" />
+<TGConnectingPoint num="3" id="4603" />
 </COMPONENT>
-
-<COMPONENT type="1011" id="5025" >
-<cdparam x="1776" y="1349" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="4597" >
+<father id="4604" num="0" />
+<cdparam x="2061" y="1388" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =4" />
-<TGConnectingPoint num="0" id="5023" />
-<TGConnectingPoint num="1" id="5024" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="5027" >
-<cdparam x="1816" y="1457" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4598" >
+<father id="4604" num="1" />
+<cdparam x="2121" y="1388" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5026" />
-</COMPONENT>
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4599" >
+<father id="4604" num="2" />
+<cdparam x="2106" y="1426" />
+<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==10 ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="5030" >
-<cdparam x="1870" y="1411" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4612" >
+<cdparam x="2262" y="951" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =6" />
-<TGConnectingPoint num="0" id="5028" />
-<TGConnectingPoint num="1" id="5029" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4608" />
+<TGConnectingPoint num="1" id="4609" />
+<TGConnectingPoint num="2" id="4610" />
+<TGConnectingPoint num="3" id="4611" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4605" >
+<father id="4612" num="0" />
+<cdparam x="2212" y="961" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==1 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4606" >
+<father id="4612" num="1" />
+<cdparam x="2301" y="975" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ tcpctrl.state ==3 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4607" >
+<father id="4612" num="2" />
+<cdparam x="2282" y="996" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ else ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5032" >
-<cdparam x="1910" y="1481" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4620" >
+<cdparam x="1981" y="1346" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5031" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4616" />
+<TGConnectingPoint num="1" id="4617" />
+<TGConnectingPoint num="2" id="4618" />
+<TGConnectingPoint num="3" id="4619" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4613" >
+<father id="4620" num="0" />
+<cdparam x="1934" y="1356" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==5 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4614" >
+<father id="4620" num="1" />
+<cdparam x="2016" y="1356" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4615" >
+<father id="4620" num="2" />
+<cdparam x="2001" y="1391" />
+<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state == 7 ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5034" >
-<cdparam x="1986" y="1543" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4628" >
+<cdparam x="1811" y="1269" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5033" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4624" />
+<TGConnectingPoint num="1" id="4625" />
+<TGConnectingPoint num="2" id="4626" />
+<TGConnectingPoint num="3" id="4627" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4621" >
+<father id="4628" num="0" />
+<cdparam x="1762" y="1279" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4622" >
+<father id="4628" num="1" />
+<cdparam x="1846" y="1279" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4623" >
+<father id="4628" num="2" />
+<cdparam x="1831" y="1314" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==2 ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="5037" >
-<cdparam x="2051" y="1466" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4636" >
+<cdparam x="1713" y="1141" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="5035" />
-<TGConnectingPoint num="1" id="5036" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4632" />
+<TGConnectingPoint num="1" id="4633" />
+<TGConnectingPoint num="2" id="4634" />
+<TGConnectingPoint num="3" id="4635" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4629" >
+<father id="4636" num="0" />
+<cdparam x="1688" y="1151" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4630" >
+<father id="4636" num="1" />
+<cdparam x="1748" y="1151" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4631" >
+<father id="4636" num="2" />
+<cdparam x="1733" y="1186" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5039" >
-<cdparam x="2091" y="1537" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4640" >
+<cdparam x="1524" y="1254" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5038" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4638" />
+<TGConnectingPoint num="1" id="4639" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4637" >
+<father id="4640" num="0" />
+<cdparam x="1539" y="1274" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="5042" >
-<cdparam x="1946" y="1493" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4644" >
+<cdparam x="1524" y="1064" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =0" />
-<TGConnectingPoint num="0" id="5040" />
-<TGConnectingPoint num="1" id="5041" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4642" />
+<TGConnectingPoint num="1" id="4643" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4641" >
+<father id="4644" num="0" />
+<cdparam x="1538" y="1088" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="5045" >
-<cdparam x="1946" y="1434" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4652" >
+<cdparam x="1592" y="1006" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =8" />
-<TGConnectingPoint num="0" id="5043" />
-<TGConnectingPoint num="1" id="5044" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4648" />
+<TGConnectingPoint num="1" id="4649" />
+<TGConnectingPoint num="2" id="4650" />
+<TGConnectingPoint num="3" id="4651" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4645" >
+<father id="4652" num="0" />
+<cdparam x="1542" y="1016" />
+<sizeparam width="124" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state  == 4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4646" >
+<father id="4652" num="1" />
+<cdparam x="1627" y="1016" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4647" >
+<father id="4652" num="2" />
+<cdparam x="1612" y="1051" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="301" id="5062" >
-<cdparam x="1825" y="889" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4660" >
+<cdparam x="1713" y="875" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="Syn
-" />
-<TGConnectingPoint num="0" id="5046" />
-<TGConnectingPoint num="1" id="5047" />
-<TGConnectingPoint num="2" id="5048" />
-<TGConnectingPoint num="3" id="5049" />
-<TGConnectingPoint num="4" id="5050" />
-<TGConnectingPoint num="5" id="5051" />
-<TGConnectingPoint num="6" id="5052" />
-<TGConnectingPoint num="7" id="5053" />
-<TGConnectingPoint num="8" id="5054" />
-<TGConnectingPoint num="9" id="5055" />
-<TGConnectingPoint num="10" id="5056" />
-<TGConnectingPoint num="11" id="5057" />
-<TGConnectingPoint num="12" id="5058" />
-<TGConnectingPoint num="13" id="5059" />
-<TGConnectingPoint num="14" id="5060" />
-<TGConnectingPoint num="15" id="5061" />
-<extraparam>
-<Line value="Syn" />
-</extraparam>
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4656" />
+<TGConnectingPoint num="1" id="4657" />
+<TGConnectingPoint num="2" id="4658" />
+<TGConnectingPoint num="3" id="4659" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4653" >
+<father id="4660" num="0" />
+<cdparam x="1688" y="885" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4654" >
+<father id="4660" num="1" />
+<cdparam x="1748" y="885" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4655" >
+<father id="4660" num="2" />
+<cdparam x="1733" y="920" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="301" id="5079" >
-<cdparam x="1707" y="945" />
-<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4664" >
+<cdparam x="1636" y="1235" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="ack
-" />
-<TGConnectingPoint num="0" id="5063" />
-<TGConnectingPoint num="1" id="5064" />
-<TGConnectingPoint num="2" id="5065" />
-<TGConnectingPoint num="3" id="5066" />
-<TGConnectingPoint num="4" id="5067" />
-<TGConnectingPoint num="5" id="5068" />
-<TGConnectingPoint num="6" id="5069" />
-<TGConnectingPoint num="7" id="5070" />
-<TGConnectingPoint num="8" id="5071" />
-<TGConnectingPoint num="9" id="5072" />
-<TGConnectingPoint num="10" id="5073" />
-<TGConnectingPoint num="11" id="5074" />
-<TGConnectingPoint num="12" id="5075" />
-<TGConnectingPoint num="13" id="5076" />
-<TGConnectingPoint num="14" id="5077" />
-<TGConnectingPoint num="15" id="5078" />
-<extraparam>
-<Line value="ack" />
-</extraparam>
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4662" />
+<TGConnectingPoint num="1" id="4663" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4661" >
+<father id="4664" num="0" />
+<cdparam x="1655" y="1254" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1006" id="5082" >
-<cdparam x="2198" y="1198" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4668" >
+<cdparam x="2232" y="1059" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="5080" />
-<TGConnectingPoint num="1" id="5081" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4666" />
+<TGConnectingPoint num="1" id="4667" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4665" >
+<father id="4668" num="0" />
+<cdparam x="2219" y="1083" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5084" >
-<cdparam x="2227" y="1483" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4672" >
+<cdparam x="2312" y="1024" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5083" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4670" />
+<TGConnectingPoint num="1" id="4671" />
 </COMPONENT>
-
-<COMPONENT type="1007" id="5087" >
-<cdparam x="2198" y="1298" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<SUBCOMPONENT type="-1" id="4669" >
+<father id="4672" num="0" />
+<cdparam x="2288" y="1044" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send request" value="req_Timer()" />
-<TGConnectingPoint num="0" id="5085" />
-<TGConnectingPoint num="1" id="5086" />
-<extraparam>
-<Data requestName="req_Timer" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1006" id="5090" >
-<cdparam x="2209" y="1365" />
-<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4680" >
+<cdparam x="1193" y="1020" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="temp(1)" />
-<TGConnectingPoint num="0" id="5088" />
-<TGConnectingPoint num="1" id="5089" />
-<extraparam>
-<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4676" />
+<TGConnectingPoint num="1" id="4677" />
+<TGConnectingPoint num="2" id="4678" />
+<TGConnectingPoint num="3" id="4679" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4673" >
+<father id="4680" num="0" />
+<cdparam x="1168" y="1030" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4674" >
+<father id="4680" num="1" />
+<cdparam x="1228" y="1030" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4675" >
+<father id="4680" num="2" />
+<cdparam x="1213" y="1065" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==6 ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="5093" >
-<cdparam x="2161" y="1136" />
-<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4684" >
+<cdparam x="1203" y="1107" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="seqNum=seqNum+wind" />
-<TGConnectingPoint num="0" id="5091" />
-<TGConnectingPoint num="1" id="5092" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4682" />
+<TGConnectingPoint num="1" id="4683" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4681" >
+<father id="4684" num="0" />
+<cdparam x="1218" y="1127" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="5096" >
-<cdparam x="2214" y="1248" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4692" >
+<cdparam x="557" y="712" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="5094" />
-<TGConnectingPoint num="1" id="5095" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4688" />
+<TGConnectingPoint num="1" id="4689" />
+<TGConnectingPoint num="2" id="4690" />
+<TGConnectingPoint num="3" id="4691" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4685" >
+<father id="4692" num="0" />
+<cdparam x="482" y="747" />
+<sizeparam width="120" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state == 1 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4686" >
+<father id="4692" num="1" />
+<cdparam x="592" y="722" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4687" >
+<father id="4692" num="2" />
+<cdparam x="577" y="757" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="5099" >
-<cdparam x="2187" y="1424" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4696" >
+<cdparam x="717" y="694" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =2" />
-<TGConnectingPoint num="0" id="5097" />
-<TGConnectingPoint num="1" id="5098" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4694" />
+<TGConnectingPoint num="1" id="4695" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4693" >
+<father id="4696" num="0" />
+<cdparam x="732" y="714" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1006" id="5102" >
-<cdparam x="2278" y="1122" />
-<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4700" >
+<cdparam x="938" y="1025" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="write channel" value="fromTtoP(1)" />
-<TGConnectingPoint num="0" id="5100" />
-<TGConnectingPoint num="1" id="5101" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4698" />
+<TGConnectingPoint num="1" id="4699" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4697" >
+<father id="4700" num="0" />
+<cdparam x="953" y="1045" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="301" id="5119" >
-<cdparam x="2283" y="1065" />
-<sizeparam width="114" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4708" >
+<cdparam x="1034" y="939" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="UML Note" value="send Ack of SYN
-" />
-<TGConnectingPoint num="0" id="5103" />
-<TGConnectingPoint num="1" id="5104" />
-<TGConnectingPoint num="2" id="5105" />
-<TGConnectingPoint num="3" id="5106" />
-<TGConnectingPoint num="4" id="5107" />
-<TGConnectingPoint num="5" id="5108" />
-<TGConnectingPoint num="6" id="5109" />
-<TGConnectingPoint num="7" id="5110" />
-<TGConnectingPoint num="8" id="5111" />
-<TGConnectingPoint num="9" id="5112" />
-<TGConnectingPoint num="10" id="5113" />
-<TGConnectingPoint num="11" id="5114" />
-<TGConnectingPoint num="12" id="5115" />
-<TGConnectingPoint num="13" id="5116" />
-<TGConnectingPoint num="14" id="5117" />
-<TGConnectingPoint num="15" id="5118" />
-<extraparam>
-<Line value="send Ack of SYN" />
-</extraparam>
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4704" />
+<TGConnectingPoint num="1" id="4705" />
+<TGConnectingPoint num="2" id="4706" />
+<TGConnectingPoint num="3" id="4707" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4701" >
+<father id="4708" num="0" />
+<cdparam x="959" y="974" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4702" >
+<father id="4708" num="1" />
+<cdparam x="1070" y="949" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4703" >
+<father id="4708" num="2" />
+<cdparam x="1054" y="984" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state == 5]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1011" id="5122" >
-<cdparam x="2267" y="1267" />
-<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4712" >
+<cdparam x="795" y="1009" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="action state" value="tcpctrl.state =2" />
-<TGConnectingPoint num="0" id="5120" />
-<TGConnectingPoint num="1" id="5121" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4710" />
+<TGConnectingPoint num="1" id="4711" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4709" >
+<father id="4712" num="0" />
+<cdparam x="818" y="1031" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5124" >
-<cdparam x="2307" y="1324" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4720" >
+<cdparam x="828" y="869" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5123" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4716" />
+<TGConnectingPoint num="1" id="4717" />
+<TGConnectingPoint num="2" id="4718" />
+<TGConnectingPoint num="3" id="4719" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4713" >
+<father id="4720" num="0" />
+<cdparam x="753" y="885" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4714" >
+<father id="4720" num="1" />
+<cdparam x="863" y="879" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4715" >
+<father id="4720" num="2" />
+<cdparam x="848" y="914" />
+<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state==0 ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="5127" >
-<cdparam x="2294" y="1199" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4724" >
+<cdparam x="341" y="764" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="send()" />
-<TGConnectingPoint num="0" id="5125" />
-<TGConnectingPoint num="1" id="5126" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4722" />
+<TGConnectingPoint num="1" id="4723" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4721" >
+<father id="4724" num="0" />
+<cdparam x="354" y="785" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5129" >
-<cdparam x="1637" y="1057" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4728" >
+<cdparam x="127" y="794" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5128" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4726" />
+<TGConnectingPoint num="1" id="4727" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4725" >
+<father id="4728" num="0" />
+<cdparam x="146" y="818" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5131" >
-<cdparam x="2168" y="1421" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1012" id="4736" >
+<cdparam x="993" y="780" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5130" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4732" />
+<TGConnectingPoint num="1" id="4733" />
+<TGConnectingPoint num="2" id="4734" />
+<TGConnectingPoint num="3" id="4735" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4729" >
+<father id="4736" num="0" />
+<cdparam x="949" y="793" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4730" >
+<father id="4736" num="1" />
+<cdparam x="1028" y="790" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4731" >
+<father id="4736" num="2" />
+<cdparam x="1013" y="825" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1001" id="5133" >
-<cdparam x="2267" y="1039" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4740" >
+<cdparam x="1003" y="701" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5132" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4738" />
+<TGConnectingPoint num="1" id="4739" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4737" >
+<father id="4740" num="0" />
+<cdparam x="1018" y="721" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1008" id="5136" >
-<cdparam x="1465" y="1192" />
-<sizeparam width="129" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1013" id="4744" >
+<cdparam x="459" y="783" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
-<infoparam name="send event" value="receive_Application()" />
-<TGConnectingPoint num="0" id="5134" />
-<TGConnectingPoint num="1" id="5135" />
-<extraparam>
-<Data eventName="receive_Application" nbOfParams="5" />
-</extraparam>
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4742" />
+<TGConnectingPoint num="1" id="4743" />
 </COMPONENT>
+<SUBCOMPONENT type="-1" id="4741" >
+<father id="4744" num="0" />
+<cdparam x="474" y="802" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
 
-<COMPONENT type="1009" id="5139" >
-<cdparam x="1698" y="1086" />
+<COMPONENT type="1013" id="4748" >
+<cdparam x="225" y="863" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4746" />
+<TGConnectingPoint num="1" id="4747" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="4745" >
+<father id="4748" num="0" />
+<cdparam x="245" y="885" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1013" id="4752" >
+<cdparam x="1044" y="1057" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="4750" />
+<TGConnectingPoint num="1" id="4751" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="4749" >
+<father id="4752" num="0" />
+<cdparam x="1059" y="1077" />
+<sizeparam width="8" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="b" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="4760" >
+<cdparam x="173" y="486" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4756" />
+<TGConnectingPoint num="1" id="4757" />
+<TGConnectingPoint num="2" id="4758" />
+<TGConnectingPoint num="3" id="4759" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="4753" >
+<father id="4760" num="0" />
+<cdparam x="98" y="496" />
+<sizeparam width="112" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4754" >
+<father id="4760" num="1" />
+<cdparam x="208" y="496" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4755" >
+<father id="4760" num="2" />
+<cdparam x="193" y="531" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="4768" >
+<cdparam x="359" y="192" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4764" />
+<TGConnectingPoint num="1" id="4765" />
+<TGConnectingPoint num="2" id="4766" />
+<TGConnectingPoint num="3" id="4767" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="4761" >
+<father id="4768" num="0" />
+<cdparam x="317" y="202" />
+<sizeparam width="81" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.a&gt;0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4762" >
+<father id="4768" num="1" />
+<cdparam x="394" y="202" />
+<sizeparam width="91" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ tcpctrl.a==0 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4763" >
+<father id="4768" num="2" />
+<cdparam x="379" y="237" />
+<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="4776" >
+<cdparam x="449" y="582" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4772" />
+<TGConnectingPoint num="1" id="4773" />
+<TGConnectingPoint num="2" id="4774" />
+<TGConnectingPoint num="3" id="4775" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="4769" >
+<father id="4776" num="0" />
+<cdparam x="404" y="592" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state ==9 ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4770" >
+<father id="4776" num="1" />
+<cdparam x="500" y="599" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4771" >
+<father id="4776" num="2" />
+<cdparam x="469" y="627" />
+<sizeparam width="252" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ (tcpctrl.state ==2) or (tcpctrl.state ==4) ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1012" id="4784" >
+<cdparam x="274" y="564" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="4780" />
+<TGConnectingPoint num="1" id="4781" />
+<TGConnectingPoint num="2" id="4782" />
+<TGConnectingPoint num="3" id="4783" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="4777" >
+<father id="4784" num="0" />
+<cdparam x="228" y="574" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
+<infoparam name="guard 1" value="[ tcpctrl.state == 1]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4778" >
+<father id="4784" num="1" />
+<cdparam x="317" y="584" />
+<sizeparam width="39" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
+<infoparam name="guard 2" value="[ else ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="4779" >
+<father id="4784" num="2" />
+<cdparam x="306" y="616" />
+<sizeparam width="116" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
+<infoparam name="guard 3" value="[ tcpctrl.state ==4 ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="4786" >
+<cdparam x="227" y="27" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="4785" />
+</COMPONENT>
+
+<COMPONENT type="301" id="4803" >
+<cdparam x="10" y="30" />
+<sizeparam width="92" height="135" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="0: closed
+1: Listen
+2: SYN rcvd
+3: SYN sent
+4: Estab
+5: Fin wait1
+6: Fin wait2
+7: closing
+8: Time wait
+9: close wait
+10:last ack
+" />
+<TGConnectingPoint num="0" id="4787" />
+<TGConnectingPoint num="1" id="4788" />
+<TGConnectingPoint num="2" id="4789" />
+<TGConnectingPoint num="3" id="4790" />
+<TGConnectingPoint num="4" id="4791" />
+<TGConnectingPoint num="5" id="4792" />
+<TGConnectingPoint num="6" id="4793" />
+<TGConnectingPoint num="7" id="4794" />
+<TGConnectingPoint num="8" id="4795" />
+<TGConnectingPoint num="9" id="4796" />
+<TGConnectingPoint num="10" id="4797" />
+<TGConnectingPoint num="11" id="4798" />
+<TGConnectingPoint num="12" id="4799" />
+<TGConnectingPoint num="13" id="4800" />
+<TGConnectingPoint num="14" id="4801" />
+<TGConnectingPoint num="15" id="4802" />
+<extraparam>
+<Line value="0: closed" />
+<Line value="1: Listen" />
+<Line value="2: SYN rcvd" />
+<Line value="3: SYN sent" />
+<Line value="4: Estab" />
+<Line value="5: Fin wait1" />
+<Line value="6: Fin wait2" />
+<Line value="7: closing" />
+<Line value="8: Time wait" />
+<Line value="9: close wait" />
+<Line value="10:last ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="4806" >
+<cdparam x="98" y="549" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =1" />
+<TGConnectingPoint num="0" id="4804" />
+<TGConnectingPoint num="1" id="4805" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="4808" >
+<cdparam x="138" y="615" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4807" />
+</COMPONENT>
+
+<COMPONENT type="1009" id="4811" >
+<cdparam x="967" y="585" />
+<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="fromPtoT(1) " />
+<TGConnectingPoint num="0" id="4809" />
+<TGConnectingPoint num="1" id="4810" />
+<extraparam>
+<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1014" id="4815" >
+<cdparam x="150" y="85" />
+<sizeparam width="170" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="for loop" value="for(i=0;(tcpctrl.a==0);i = i)" />
+<TGConnectingPoint num="0" id="4812" />
+<TGConnectingPoint num="1" id="4813" />
+<TGConnectingPoint num="2" id="4814" />
+<extraparam>
+<Data init="i=0" condition="(tcpctrl.a==0)" increment="i = i" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="4817" >
+<cdparam x="225" y="207" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4816" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="4820" >
+<cdparam x="187" y="144" />
+<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state=0" />
+<TGConnectingPoint num="0" id="4818" />
+<TGConnectingPoint num="1" id="4819" />
+</COMPONENT>
+
+<COMPONENT type="1017" id="4823" >
+<cdparam x="316" y="133" />
+<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="notified event" value="tcpctrl.a=?abort()" />
+<TGConnectingPoint num="0" id="4821" />
+<TGConnectingPoint num="1" id="4822" />
+<extraparam>
+<Data eventName="abort" variable="tcpctrl.a" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="4826" >
+<cdparam x="692" y="589" />
 <sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
 <infoparam name="read channel" value="temp(1) " />
-<TGConnectingPoint num="0" id="5137" />
-<TGConnectingPoint num="1" id="5138" />
+<TGConnectingPoint num="0" id="4824" />
+<TGConnectingPoint num="1" id="4825" />
 <extraparam>
 <Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
 </extraparam>
 </COMPONENT>
 
-<CONNECTOR type="115" id="5140" >
-<cdparam x="192" y="445" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="190" y="449" id="4391" />
-<P2  x="188" y="476" id="4552" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5141" >
-<cdparam x="1048" y="795" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="1048" y="795" id="4530" />
-<P2  x="1728" y="865" id="4452" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5142" >
-<cdparam x="1048" y="795" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="1089" y="954" id="4502" />
-<P2  x="1208" y="1010" id="4472" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5143" >
-<cdparam x="1008" y="610" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to execI" value="null" />
-<P1  x="1008" y="610" id="4606" />
-<P2  x="1008" y="696" id="4534" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5144" >
-<cdparam x="722" y="614" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to execI" value="null" />
-<P1  x="722" y="614" id="4621" />
-<P2  x="722" y="689" id="4490" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5145" >
-<cdparam x="504" y="597" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="504" y="597" id="4570" />
-<P2  x="572" y="702" id="4484" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5146" >
-<cdparam x="464" y="637" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="464" y="637" id="4571" />
-<P2  x="464" y="778" id="4538" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5147" >
-<cdparam x="424" y="597" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="424" y="597" id="4569" />
-<P2  x="346" y="759" id="4518" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5148" >
-<cdparam x="289" y="619" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to read channel" value="null" />
-<P1  x="289" y="619" id="4579" />
-<P2  x="230" y="803" id="4675" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5149" >
-<cdparam x="249" y="579" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="249" y="579" id="4577" />
-<P2  x="132" y="789" id="4522" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5150" >
-<cdparam x="371" y="93" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from for loop to notified event" value="null" />
-<P1  x="320" y="99" id="4609" />
-<P2  x="374" y="128" id="4617" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5151" >
-<cdparam x="234" y="169" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="235" y="169" id="4615" />
-<P2  x="235" y="202" id="4612" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5152" >
-<cdparam x="234" y="104" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from for loop to action state" value="null" />
-<P1  x="235" y="110" id="4610" />
-<P2  x="235" y="139" id="4614" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5153" >
-<cdparam x="234" y="47" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to for loop" value="null" />
-<P1  x="234" y="47" id="4581" />
-<P2  x="235" y="80" id="4608" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5154" >
-<cdparam x="425" y="162" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from notified event to choice" value="null" />
-<P1  x="374" y="158" id="4618" />
-<P2  x="374" y="182" id="4560" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5155" >
-<cdparam x="564" y="482" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="464" y="322" id="4644" />
-<P2  x="722" y="529" id="4623" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5156" >
-<cdparam x="722" y="559" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="722" y="559" id="4624" />
-<P2  x="722" y="584" id="4620" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5157" >
-<cdparam x="604" y="442" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="504" y="282" id="4640" />
-<P2  x="1008" y="523" id="4626" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5158" >
-<cdparam x="1007" y="553" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="1008" y="553" id="4627" />
-<P2  x="1008" y="580" id="4605" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5159" >
-<cdparam x="524" y="442" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="464" y="322" id="4641" />
-<P2  x="464" y="487" id="4629" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5160" >
-<cdparam x="330" y="428" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="424" y="282" id="4642" />
-<P2  x="289" y="463" id="4632" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5161" >
-<cdparam x="318" y="520" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to choice" value="null" />
-<P1  x="289" y="493" id="4633" />
-<P2  x="289" y="554" id="4576" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5162" >
-<cdparam x="160" y="481" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to action state" value="null" />
-<P1  x="148" y="501" id="4553" />
-<P2  x="148" y="544" id="4600" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5163" >
-<cdparam x="290" y="388" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="424" y="282" id="4639" />
-<P2  x="188" y="378" id="4635" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5164" >
-<cdparam x="229" y="467" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to choice" value="null" />
-<P1  x="188" y="408" id="4636" />
-<P2  x="190" y="419" id="4390" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5165" >
-<cdparam x="228" y="501" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="228" y="501" id="4554" />
-<P2  x="228" y="524" id="4649" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5166" >
-<cdparam x="334" y="207" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="334" y="207" id="4561" />
-<P2  x="301" y="223" id="4653" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5167" >
-<cdparam x="301" y="253" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to stop state" value="null" />
-<P1  x="301" y="253" id="4654" />
-<P2  x="301" y="285" id="4656" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5168" >
-<cdparam x="464" y="517" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to choice" value="null" />
-<P1  x="464" y="517" id="4630" />
-<P2  x="464" y="572" id="4568" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5169" >
-<cdparam x="329" y="579" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="329" y="579" id="4578" />
-<P2  x="329" y="609" id="4651" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5170" >
-<cdparam x="126" y="574" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="148" y="574" id="4601" />
-<P2  x="148" y="610" id="4603" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5171" >
-<cdparam x="414" y="207" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to select" value="null" />
-<P1  x="414" y="207" id="4562" />
-<P2  x="464" y="257" id="4638" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5172" >
-<cdparam x="230" y="833" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to execI" value="null" />
-<P1  x="230" y="833" id="4676" />
-<P2  x="230" y="858" id="4542" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5173" >
-<cdparam x="716" y="749" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="968" y="795" id="4529" />
-<P2  x="843" y="859" id="4512" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5174" >
-<cdparam x="720" y="1074" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="728" y="990" id="4725" />
-<P2  x="728" y="1027" id="4727" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5175" >
-<cdparam x="733" y="899" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to action state" value="null" />
-<P1  x="803" y="884" id="4513" />
-<P2  x="728" y="960" id="4724" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5176" >
-<cdparam x="800" y="938" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="843" y="924" id="4515" />
-<P2  x="800" y="1004" id="4506" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5177" >
-<cdparam x="800" y="1057" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="800" y="1044" id="4507" />
-<P2  x="800" y="1081" id="4729" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5178" >
-<cdparam x="132" y="886" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to write channel" value="null" />
-<P1  x="132" y="886" id="4856" />
-<P2  x="132" y="933" id="4691" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5179" >
-<cdparam x="943" y="1061" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="943" y="1060" id="4495" />
-<P2  x="943" y="1118" id="4774" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5180" >
-<cdparam x="1049" y="1093" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1049" y="1092" id="4547" />
-<P2  x="1049" y="1150" id="4799" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5181" >
-<cdparam x="1049" y="994" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="1049" y="994" id="4503" />
-<P2  x="1049" y="1052" id="4546" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5182" >
-<cdparam x="696" y="742" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="722" y="729" id="4491" />
-<P2  x="722" y="753" id="4824" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5183" >
-<cdparam x="132" y="1125" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to write channel" value="null" />
-<P1  x="132" y="1125" id="4830" />
-<P2  x="132" y="1162" id="4832" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5184" >
-<cdparam x="132" y="1192" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="132" y="1192" id="4833" />
-<P2  x="132" y="1231" id="4835" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5185" >
-<cdparam x="132" y="1066" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to send request" value="null" />
-<P1  x="132" y="1066" id="4689" />
-<P2  x="132" y="1095" id="4829" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5186" >
-<cdparam x="229" y="1127" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to write channel" value="null" />
-<P1  x="230" y="1127" id="4838" />
-<P2  x="230" y="1164" id="4840" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5187" >
-<cdparam x="346" y="1131" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to write channel" value="null" />
-<P1  x="346" y="1131" id="4844" />
-<P2  x="346" y="1168" id="4846" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5188" >
-<cdparam x="346" y="1051" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to send request" value="null" />
-<P1  x="346" y="1051" id="4695" />
-<P2  x="346" y="1101" id="4843" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5189" >
-<cdparam x="437" y="1118" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to write channel" value="null" />
-<P1  x="464" y="1115" id="4850" />
-<P2  x="464" y="1154" id="4852" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5190" >
-<cdparam x="438" y="1057" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to send request" value="null" />
-<P1  x="464" y="1057" id="4684" />
-<P2  x="464" y="1085" id="4849" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5191" >
-<cdparam x="132" y="808" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to action state" value="null" />
-<P1  x="132" y="829" id="4523" />
-<P2  x="132" y="856" id="4855" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5192" >
-<cdparam x="230" y="898" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to action state" value="null" />
-<P1  x="230" y="898" id="4543" />
-<P2  x="230" y="935" id="4858" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5193" >
-<cdparam x="230" y="965" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to write channel" value="null" />
-<P1  x="230" y="965" id="4859" />
-<P2  x="230" y="997" id="4678" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5194" >
-<cdparam x="346" y="799" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to action state" value="null" />
-<P1  x="346" y="799" id="4519" />
-<P2  x="346" y="826" id="4864" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5195" >
-<cdparam x="346" y="856" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to write channel" value="null" />
-<P1  x="346" y="856" id="4865" />
-<P2  x="346" y="895" id="4702" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5196" >
-<cdparam x="439" y="818" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to action state" value="null" />
-<P1  x="464" y="818" id="4539" />
-<P2  x="464" y="860" id="4861" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5197" >
-<cdparam x="439" y="890" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to write channel" value="null" />
-<P1  x="464" y="890" id="4862" />
-<P2  x="464" y="936" id="4699" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5198" >
-<cdparam x="132" y="963" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="132" y="963" id="4692" />
-<P2  x="132" y="981" id="4876" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5199" >
-<cdparam x="132" y="1011" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to action state" value="null" />
-<P1  x="132" y="1011" id="4877" />
-<P2  x="132" y="1036" id="4688" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5200" >
-<cdparam x="230" y="1027" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="230" y="1027" id="4679" />
-<P2  x="230" y="1047" id="4867" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5201" >
-<cdparam x="228" y="1088" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to send request" value="null" />
-<P1  x="230" y="1077" id="4868" />
-<P2  x="230" y="1097" id="4837" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5202" >
-<cdparam x="346" y="925" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="346" y="925" id="4703" />
-<P2  x="346" y="957" id="4870" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5203" >
-<cdparam x="348" y="987" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to action state" value="null" />
-<P1  x="346" y="987" id="4871" />
-<P2  x="346" y="1021" id="4694" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5204" >
-<cdparam x="439" y="966" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="464" y="966" id="4700" />
-<P2  x="464" y="978" id="4873" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5205" >
-<cdparam x="438" y="1008" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to action state" value="null" />
-<P1  x="464" y="1008" id="4874" />
-<P2  x="464" y="1027" id="4683" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5206" >
-<cdparam x="722" y="783" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="722" y="783" id="4825" />
-<P2  x="722" y="808" id="4879" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5207" >
-<cdparam x="722" y="838" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="722" y="838" id="4880" />
-<P2  x="722" y="860" id="4827" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5208" >
-<cdparam x="800" y="1111" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="800" y="1111" id="4730" />
-<P2  x="800" y="1136" id="4882" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5209" >
-<cdparam x="798" y="1166" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to action state" value="null" />
-<P1  x="800" y="1166" id="4883" />
-<P2  x="800" y="1188" id="4766" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5210" >
-<cdparam x="943" y="1148" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="943" y="1148" id="4775" />
-<P2  x="943" y="1173" id="4885" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5211" >
-<cdparam x="950" y="1201" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to action state" value="null" />
-<P1  x="943" y="1203" id="4886" />
-<P2  x="943" y="1229" id="4794" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5212" >
-<cdparam x="1049" y="1180" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1049" y="1180" id="4800" />
-<P2  x="1049" y="1206" id="4888" />
+<COMPONENT type="1010" id="4829" >
+<cdparam x="689" y="534" />
+<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="timeOut() " />
+<TGConnectingPoint num="0" id="4827" />
+<TGConnectingPoint num="1" id="4828" />
+<extraparam>
+<Data eventName="timeOut" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="4832" >
+<cdparam x="977" y="528" />
+<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="receive() " />
+<TGConnectingPoint num="0" id="4830" />
+<TGConnectingPoint num="1" id="4831" />
+<extraparam>
+<Data eventName="receive" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="4835" >
+<cdparam x="439" y="492" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="close() " />
+<TGConnectingPoint num="0" id="4833" />
+<TGConnectingPoint num="1" id="4834" />
+<extraparam>
+<Data eventName="close" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="4838" >
+<cdparam x="250" y="468" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="send_TCP() " />
+<TGConnectingPoint num="0" id="4836" />
+<TGConnectingPoint num="1" id="4837" />
+<extraparam>
+<Data eventName="send_TCP" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="4841" >
+<cdparam x="163" y="383" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="open() " />
+<TGConnectingPoint num="0" id="4839" />
+<TGConnectingPoint num="1" id="4840" />
+<breakpoint />
+<extraparam>
+<Data eventName="open" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1018" id="4852" >
+<cdparam x="449" y="267" />
+<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="select" value="null" />
+<TGConnectingPoint num="0" id="4842" />
+<TGConnectingPoint num="1" id="4843" />
+<TGConnectingPoint num="2" id="4844" />
+<TGConnectingPoint num="3" id="4845" />
+<TGConnectingPoint num="4" id="4846" />
+<TGConnectingPoint num="5" id="4847" />
+<TGConnectingPoint num="6" id="4848" />
+<TGConnectingPoint num="7" id="4849" />
+<TGConnectingPoint num="8" id="4850" />
+<TGConnectingPoint num="9" id="4851" />
+<breakpoint />
+</COMPONENT>
+
+<COMPONENT type="1001" id="4854" >
+<cdparam x="218" y="529" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4853" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="4856" >
+<cdparam x="319" y="614" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4855" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="4859" >
+<cdparam x="275" y="228" />
+<sizeparam width="53" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="wait event" value="abort() " />
+<TGConnectingPoint num="0" id="4857" />
+<TGConnectingPoint num="1" id="4858" />
+<extraparam>
+<Data eventName="abort" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="4861" >
+<cdparam x="291" y="290" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4860" />
+</COMPONENT>
+
+<COMPONENT type="301" id="4878" >
+<cdparam x="602" y="86" />
+<sizeparam width="360" height="51" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="b est le nombre d&apos;instructions necessaires pour paquetiser
+ou depaquitiser un paquet TCP
+
+On prend b=1 comme exemple
+" />
+<TGConnectingPoint num="0" id="4862" />
+<TGConnectingPoint num="1" id="4863" />
+<TGConnectingPoint num="2" id="4864" />
+<TGConnectingPoint num="3" id="4865" />
+<TGConnectingPoint num="4" id="4866" />
+<TGConnectingPoint num="5" id="4867" />
+<TGConnectingPoint num="6" id="4868" />
+<TGConnectingPoint num="7" id="4869" />
+<TGConnectingPoint num="8" id="4870" />
+<TGConnectingPoint num="9" id="4871" />
+<TGConnectingPoint num="10" id="4872" />
+<TGConnectingPoint num="11" id="4873" />
+<TGConnectingPoint num="12" id="4874" />
+<TGConnectingPoint num="13" id="4875" />
+<TGConnectingPoint num="14" id="4876" />
+<TGConnectingPoint num="15" id="4877" />
+<extraparam>
+<Line value="b est le nombre d&apos;instructions necessaires pour paquetiser" />
+<Line value="ou depaquitiser un paquet TCP" />
+<Line value="" />
+<Line value="On prend b=1 comme exemple" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="4881" >
+<cdparam x="188" y="808" />
+<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="fromAtoT(1) " />
+<TGConnectingPoint num="0" id="4879" />
+<TGConnectingPoint num="1" id="4880" />
+<extraparam>
+<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="4884" >
+<cdparam x="191" y="1002" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="4882" />
+<TGConnectingPoint num="1" id="4883" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="4886" >
+<cdparam x="220" y="1237" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4885" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="4889" >
+<cdparam x="414" y="1032" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =5" />
+<TGConnectingPoint num="0" id="4887" />
+<TGConnectingPoint num="1" id="4888" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="4891" >
+<cdparam x="454" y="1213" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4890" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="4894" >
+<cdparam x="84" y="1041" />
+<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state=3" />
+<TGConnectingPoint num="0" id="4892" />
+<TGConnectingPoint num="1" id="4893" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="4897" >
+<cdparam x="93" y="938" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="4895" />
+<TGConnectingPoint num="1" id="4896" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="4900" >
+<cdparam x="292" y="1026" />
+<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =10" />
+<TGConnectingPoint num="0" id="4898" />
+<TGConnectingPoint num="1" id="4899" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="4902" >
+<cdparam x="336" y="1229" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4901" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="4905" >
+<cdparam x="425" y="941" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="4903" />
+<TGConnectingPoint num="1" id="4904" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="4908" >
+<cdparam x="307" y="900" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="4906" />
+<TGConnectingPoint num="1" id="4907" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="4910" >
+<cdparam x="790" y="1270" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4909" />
+</COMPONENT>
+
+<COMPONENT type="301" id="4927" >
+<cdparam x="998" y="850" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Final
+" />
+<TGConnectingPoint num="0" id="4911" />
+<TGConnectingPoint num="1" id="4912" />
+<TGConnectingPoint num="2" id="4913" />
+<TGConnectingPoint num="3" id="4914" />
+<TGConnectingPoint num="4" id="4915" />
+<TGConnectingPoint num="5" id="4916" />
+<TGConnectingPoint num="6" id="4917" />
+<TGConnectingPoint num="7" id="4918" />
+<TGConnectingPoint num="8" id="4919" />
+<TGConnectingPoint num="9" id="4920" />
+<TGConnectingPoint num="10" id="4921" />
+<TGConnectingPoint num="11" id="4922" />
+<TGConnectingPoint num="12" id="4923" />
+<TGConnectingPoint num="13" id="4924" />
+<TGConnectingPoint num="14" id="4925" />
+<TGConnectingPoint num="15" id="4926" />
+<extraparam>
+<Line value="Final" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="4930" >
+<cdparam x="678" y="965" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =1" />
+<TGConnectingPoint num="0" id="4928" />
+<TGConnectingPoint num="1" id="4929" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="4932" >
+<cdparam x="718" y="1032" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4931" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="4935" >
+<cdparam x="761" y="1086" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="4933" />
+<TGConnectingPoint num="1" id="4934" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="4952" >
+<cdparam x="781" y="950" />
+<sizeparam width="89" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Active Open
+" />
+<TGConnectingPoint num="0" id="4936" />
+<TGConnectingPoint num="1" id="4937" />
+<TGConnectingPoint num="2" id="4938" />
+<TGConnectingPoint num="3" id="4939" />
+<TGConnectingPoint num="4" id="4940" />
+<TGConnectingPoint num="5" id="4941" />
+<TGConnectingPoint num="6" id="4942" />
+<TGConnectingPoint num="7" id="4943" />
+<TGConnectingPoint num="8" id="4944" />
+<TGConnectingPoint num="9" id="4945" />
+<TGConnectingPoint num="10" id="4946" />
+<TGConnectingPoint num="11" id="4947" />
+<TGConnectingPoint num="12" id="4948" />
+<TGConnectingPoint num="13" id="4949" />
+<TGConnectingPoint num="14" id="4950" />
+<TGConnectingPoint num="15" id="4951" />
+<extraparam>
+<Line value="Active Open" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="4969" >
+<cdparam x="715" y="907" />
+<sizeparam width="97" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Passive Open
+" />
+<TGConnectingPoint num="0" id="4953" />
+<TGConnectingPoint num="1" id="4954" />
+<TGConnectingPoint num="2" id="4955" />
+<TGConnectingPoint num="3" id="4956" />
+<TGConnectingPoint num="4" id="4957" />
+<TGConnectingPoint num="5" id="4958" />
+<TGConnectingPoint num="6" id="4959" />
+<TGConnectingPoint num="7" id="4960" />
+<TGConnectingPoint num="8" id="4961" />
+<TGConnectingPoint num="9" id="4962" />
+<TGConnectingPoint num="10" id="4963" />
+<TGConnectingPoint num="11" id="4964" />
+<TGConnectingPoint num="12" id="4965" />
+<TGConnectingPoint num="13" id="4966" />
+<TGConnectingPoint num="14" id="4967" />
+<TGConnectingPoint num="15" id="4968" />
+<extraparam>
+<Line value="Passive Open" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="4972" >
+<cdparam x="750" y="1193" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =3" />
+<TGConnectingPoint num="0" id="4970" />
+<TGConnectingPoint num="1" id="4971" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="4975" >
+<cdparam x="446" y="768" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="4973" />
+<TGConnectingPoint num="1" id="4974" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="4977" >
+<cdparam x="486" y="830" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="4976" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="4980" >
+<cdparam x="904" y="1123" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="4978" />
+<TGConnectingPoint num="1" id="4979" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="4997" >
+<cdparam x="884" y="1068" />
+<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="4981" />
+<TGConnectingPoint num="1" id="4982" />
+<TGConnectingPoint num="2" id="4983" />
+<TGConnectingPoint num="3" id="4984" />
+<TGConnectingPoint num="4" id="4985" />
+<TGConnectingPoint num="5" id="4986" />
+<TGConnectingPoint num="6" id="4987" />
+<TGConnectingPoint num="7" id="4988" />
+<TGConnectingPoint num="8" id="4989" />
+<TGConnectingPoint num="9" id="4990" />
+<TGConnectingPoint num="10" id="4991" />
+<TGConnectingPoint num="11" id="4992" />
+<TGConnectingPoint num="12" id="4993" />
+<TGConnectingPoint num="13" id="4994" />
+<TGConnectingPoint num="14" id="4995" />
+<TGConnectingPoint num="15" id="4996" />
+<extraparam>
+<Line value="send Ack of Fin" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="5000" >
+<cdparam x="893" y="1234" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =9" />
+<TGConnectingPoint num="0" id="4998" />
+<TGConnectingPoint num="1" id="4999" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5002" >
+<cdparam x="933" y="1311" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5001" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="5005" >
+<cdparam x="1010" y="1155" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="5003" />
+<TGConnectingPoint num="1" id="5004" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="5022" >
+<cdparam x="1000" y="1094" />
+<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="5006" />
+<TGConnectingPoint num="1" id="5007" />
+<TGConnectingPoint num="2" id="5008" />
+<TGConnectingPoint num="3" id="5009" />
+<TGConnectingPoint num="4" id="5010" />
+<TGConnectingPoint num="5" id="5011" />
+<TGConnectingPoint num="6" id="5012" />
+<TGConnectingPoint num="7" id="5013" />
+<TGConnectingPoint num="8" id="5014" />
+<TGConnectingPoint num="9" id="5015" />
+<TGConnectingPoint num="10" id="5016" />
+<TGConnectingPoint num="11" id="5017" />
+<TGConnectingPoint num="12" id="5018" />
+<TGConnectingPoint num="13" id="5019" />
+<TGConnectingPoint num="14" id="5020" />
+<TGConnectingPoint num="15" id="5021" />
+<extraparam>
+<Line value="send Ack of Fin" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="5025" >
+<cdparam x="999" y="1266" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =7" />
+<TGConnectingPoint num="0" id="5023" />
+<TGConnectingPoint num="1" id="5024" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5027" >
+<cdparam x="1039" y="1341" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5026" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="5030" >
+<cdparam x="683" y="758" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="5028" />
+<TGConnectingPoint num="1" id="5029" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5032" >
+<cdparam x="712" y="865" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5031" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="5035" >
+<cdparam x="93" y="1100" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="5033" />
+<TGConnectingPoint num="1" id="5034" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5038" >
+<cdparam x="104" y="1167" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="5036" />
+<TGConnectingPoint num="1" id="5037" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5040" >
+<cdparam x="122" y="1236" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5039" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="5043" >
+<cdparam x="191" y="1102" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="5041" />
+<TGConnectingPoint num="1" id="5042" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5046" >
+<cdparam x="202" y="1169" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="5044" />
+<TGConnectingPoint num="1" id="5045" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="5049" >
+<cdparam x="307" y="1106" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="5047" />
+<TGConnectingPoint num="1" id="5048" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5052" >
+<cdparam x="318" y="1173" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="5050" />
+<TGConnectingPoint num="1" id="5051" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="5055" >
+<cdparam x="425" y="1090" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="5053" />
+<TGConnectingPoint num="1" id="5054" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5058" >
+<cdparam x="436" y="1159" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="5056" />
+<TGConnectingPoint num="1" id="5057" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="5061" >
+<cdparam x="56" y="861" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="5059" />
+<TGConnectingPoint num="1" id="5060" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5064" >
+<cdparam x="154" y="940" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="5062" />
+<TGConnectingPoint num="1" id="5063" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5067" >
+<cdparam x="388" y="865" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="5065" />
+<TGConnectingPoint num="1" id="5066" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5070" >
+<cdparam x="270" y="831" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="5068" />
+<TGConnectingPoint num="1" id="5069" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="5073" >
+<cdparam x="207" y="1052" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5071" />
+<TGConnectingPoint num="1" id="5072" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5076" >
+<cdparam x="323" y="962" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5074" />
+<TGConnectingPoint num="1" id="5075" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5079" >
+<cdparam x="441" y="983" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5077" />
+<TGConnectingPoint num="1" id="5078" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5082" >
+<cdparam x="109" y="986" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5080" />
+<TGConnectingPoint num="1" id="5081" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5085" >
+<cdparam x="699" y="813" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5083" />
+<TGConnectingPoint num="1" id="5084" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5088" >
+<cdparam x="777" y="1141" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5086" />
+<TGConnectingPoint num="1" id="5087" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5091" >
+<cdparam x="920" y="1178" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5089" />
+<TGConnectingPoint num="1" id="5090" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5094" >
+<cdparam x="1026" y="1211" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5092" />
+<TGConnectingPoint num="1" id="5093" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5096" >
+<cdparam x="602" y="762" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5095" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5098" >
+<cdparam x="873" y="922" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5097" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="5101" >
+<cdparam x="1169" y="1214" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="5099" />
+<TGConnectingPoint num="1" id="5100" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="5118" >
+<cdparam x="1159" y="1153" />
+<sizeparam width="108" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of Fin
+" />
+<TGConnectingPoint num="0" id="5102" />
+<TGConnectingPoint num="1" id="5103" />
+<TGConnectingPoint num="2" id="5104" />
+<TGConnectingPoint num="3" id="5105" />
+<TGConnectingPoint num="4" id="5106" />
+<TGConnectingPoint num="5" id="5107" />
+<TGConnectingPoint num="6" id="5108" />
+<TGConnectingPoint num="7" id="5109" />
+<TGConnectingPoint num="8" id="5110" />
+<TGConnectingPoint num="9" id="5111" />
+<TGConnectingPoint num="10" id="5112" />
+<TGConnectingPoint num="11" id="5113" />
+<TGConnectingPoint num="12" id="5114" />
+<TGConnectingPoint num="13" id="5115" />
+<TGConnectingPoint num="14" id="5116" />
+<TGConnectingPoint num="15" id="5117" />
+<extraparam>
+<Line value="send Ack of Fin" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="5121" >
+<cdparam x="1158" y="1295" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =8" />
+<TGConnectingPoint num="0" id="5119" />
+<TGConnectingPoint num="1" id="5120" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5123" >
+<cdparam x="1198" y="1471" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5122" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5126" >
+<cdparam x="1158" y="1402" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="5124" />
+<TGConnectingPoint num="1" id="5125" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="5129" >
+<cdparam x="1185" y="1351" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5127" />
+<TGConnectingPoint num="1" id="5128" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5131" >
+<cdparam x="1277" y="1070" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5130" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5133" >
+<cdparam x="1519" y="1457" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5132" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="5136" >
+<cdparam x="1489" y="1132" />
+<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoA(1)" />
+<TGConnectingPoint num="0" id="5134" />
+<TGConnectingPoint num="1" id="5135" />
+<extraparam>
+<Data channelName="fromTtoA" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5139" >
+<cdparam x="1490" y="1348" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="5137" />
+<TGConnectingPoint num="1" id="5138" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5142" >
+<cdparam x="1707" y="1026" />
+<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="stop()" />
+<TGConnectingPoint num="0" id="5140" />
+<TGConnectingPoint num="1" id="5141" />
+<extraparam>
+<Data eventName="stop" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="5159" >
+<cdparam x="1759" y="1192" />
+<sizeparam width="86" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Correct ack
+" />
+<TGConnectingPoint num="0" id="5143" />
+<TGConnectingPoint num="1" id="5144" />
+<TGConnectingPoint num="2" id="5145" />
+<TGConnectingPoint num="3" id="5146" />
+<TGConnectingPoint num="4" id="5147" />
+<TGConnectingPoint num="5" id="5148" />
+<TGConnectingPoint num="6" id="5149" />
+<TGConnectingPoint num="7" id="5150" />
+<TGConnectingPoint num="8" id="5151" />
+<TGConnectingPoint num="9" id="5152" />
+<TGConnectingPoint num="10" id="5153" />
+<TGConnectingPoint num="11" id="5154" />
+<TGConnectingPoint num="12" id="5155" />
+<TGConnectingPoint num="13" id="5156" />
+<TGConnectingPoint num="14" id="5157" />
+<TGConnectingPoint num="15" id="5158" />
+<extraparam>
+<Line value="Correct ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="5176" >
+<cdparam x="1635" y="1168" />
+<sizeparam width="71" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="false ack
+" />
+<TGConnectingPoint num="0" id="5160" />
+<TGConnectingPoint num="1" id="5161" />
+<TGConnectingPoint num="2" id="5162" />
+<TGConnectingPoint num="3" id="5163" />
+<TGConnectingPoint num="4" id="5164" />
+<TGConnectingPoint num="5" id="5165" />
+<TGConnectingPoint num="6" id="5166" />
+<TGConnectingPoint num="7" id="5167" />
+<TGConnectingPoint num="8" id="5168" />
+<TGConnectingPoint num="9" id="5169" />
+<TGConnectingPoint num="10" id="5170" />
+<TGConnectingPoint num="11" id="5171" />
+<TGConnectingPoint num="12" id="5172" />
+<TGConnectingPoint num="13" id="5173" />
+<TGConnectingPoint num="14" id="5174" />
+<TGConnectingPoint num="15" id="5175" />
+<extraparam>
+<Line value="false ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5179" >
+<cdparam x="1602" y="1299" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="5177" />
+<TGConnectingPoint num="1" id="5178" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5181" >
+<cdparam x="1631" y="1468" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5180" />
+</COMPONENT>
+
+<COMPONENT type="301" id="5198" >
+<cdparam x="1469" y="1295" />
+<sizeparam width="127" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="return acknowldge
+" />
+<TGConnectingPoint num="0" id="5182" />
+<TGConnectingPoint num="1" id="5183" />
+<TGConnectingPoint num="2" id="5184" />
+<TGConnectingPoint num="3" id="5185" />
+<TGConnectingPoint num="4" id="5186" />
+<TGConnectingPoint num="5" id="5187" />
+<TGConnectingPoint num="6" id="5188" />
+<TGConnectingPoint num="7" id="5189" />
+<TGConnectingPoint num="8" id="5190" />
+<TGConnectingPoint num="9" id="5191" />
+<TGConnectingPoint num="10" id="5192" />
+<TGConnectingPoint num="11" id="5193" />
+<TGConnectingPoint num="12" id="5194" />
+<TGConnectingPoint num="13" id="5195" />
+<TGConnectingPoint num="14" id="5196" />
+<TGConnectingPoint num="15" id="5197" />
+<extraparam>
+<Line value="return acknowldge" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="5215" >
+<cdparam x="1620" y="927" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="data
+" />
+<TGConnectingPoint num="0" id="5199" />
+<TGConnectingPoint num="1" id="5200" />
+<TGConnectingPoint num="2" id="5201" />
+<TGConnectingPoint num="3" id="5202" />
+<TGConnectingPoint num="4" id="5203" />
+<TGConnectingPoint num="5" id="5204" />
+<TGConnectingPoint num="6" id="5205" />
+<TGConnectingPoint num="7" id="5206" />
+<TGConnectingPoint num="8" id="5207" />
+<TGConnectingPoint num="9" id="5208" />
+<TGConnectingPoint num="10" id="5209" />
+<TGConnectingPoint num="11" id="5210" />
+<TGConnectingPoint num="12" id="5211" />
+<TGConnectingPoint num="13" id="5212" />
+<TGConnectingPoint num="14" id="5213" />
+<TGConnectingPoint num="15" id="5214" />
+<extraparam>
+<Line value="data" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5218" >
+<cdparam x="1506" y="1405" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5216" />
+<TGConnectingPoint num="1" id="5217" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1008" id="5221" >
+<cdparam x="1618" y="1348" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5219" />
+<TGConnectingPoint num="1" id="5220" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5224" >
+<cdparam x="1613" y="1404" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="5222" />
+<TGConnectingPoint num="1" id="5223" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5226" >
+<cdparam x="1730" y="1335" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5225" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5229" >
+<cdparam x="1776" y="1349" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =4" />
+<TGConnectingPoint num="0" id="5227" />
+<TGConnectingPoint num="1" id="5228" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5231" >
+<cdparam x="1816" y="1457" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5230" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5234" >
+<cdparam x="1870" y="1411" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =6" />
+<TGConnectingPoint num="0" id="5232" />
+<TGConnectingPoint num="1" id="5233" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5236" >
+<cdparam x="1910" y="1481" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5235" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5238" >
+<cdparam x="1986" y="1543" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5237" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5241" >
+<cdparam x="2051" y="1466" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="5239" />
+<TGConnectingPoint num="1" id="5240" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5243" >
+<cdparam x="2091" y="1537" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5242" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5246" >
+<cdparam x="1946" y="1493" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =0" />
+<TGConnectingPoint num="0" id="5244" />
+<TGConnectingPoint num="1" id="5245" />
+</COMPONENT>
+
+<COMPONENT type="1011" id="5249" >
+<cdparam x="1946" y="1434" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =8" />
+<TGConnectingPoint num="0" id="5247" />
+<TGConnectingPoint num="1" id="5248" />
+</COMPONENT>
+
+<COMPONENT type="301" id="5266" >
+<cdparam x="1825" y="889" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="Syn
+" />
+<TGConnectingPoint num="0" id="5250" />
+<TGConnectingPoint num="1" id="5251" />
+<TGConnectingPoint num="2" id="5252" />
+<TGConnectingPoint num="3" id="5253" />
+<TGConnectingPoint num="4" id="5254" />
+<TGConnectingPoint num="5" id="5255" />
+<TGConnectingPoint num="6" id="5256" />
+<TGConnectingPoint num="7" id="5257" />
+<TGConnectingPoint num="8" id="5258" />
+<TGConnectingPoint num="9" id="5259" />
+<TGConnectingPoint num="10" id="5260" />
+<TGConnectingPoint num="11" id="5261" />
+<TGConnectingPoint num="12" id="5262" />
+<TGConnectingPoint num="13" id="5263" />
+<TGConnectingPoint num="14" id="5264" />
+<TGConnectingPoint num="15" id="5265" />
+<extraparam>
+<Line value="Syn" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="5283" >
+<cdparam x="1707" y="945" />
+<sizeparam width="50" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="ack
+" />
+<TGConnectingPoint num="0" id="5267" />
+<TGConnectingPoint num="1" id="5268" />
+<TGConnectingPoint num="2" id="5269" />
+<TGConnectingPoint num="3" id="5270" />
+<TGConnectingPoint num="4" id="5271" />
+<TGConnectingPoint num="5" id="5272" />
+<TGConnectingPoint num="6" id="5273" />
+<TGConnectingPoint num="7" id="5274" />
+<TGConnectingPoint num="8" id="5275" />
+<TGConnectingPoint num="9" id="5276" />
+<TGConnectingPoint num="10" id="5277" />
+<TGConnectingPoint num="11" id="5278" />
+<TGConnectingPoint num="12" id="5279" />
+<TGConnectingPoint num="13" id="5280" />
+<TGConnectingPoint num="14" id="5281" />
+<TGConnectingPoint num="15" id="5282" />
+<extraparam>
+<Line value="ack" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5286" >
+<cdparam x="2198" y="1198" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="5284" />
+<TGConnectingPoint num="1" id="5285" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5288" >
+<cdparam x="2227" y="1483" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5287" />
+</COMPONENT>
+
+<COMPONENT type="1007" id="5291" >
+<cdparam x="2198" y="1298" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send request" value="req_Timer()" />
+<TGConnectingPoint num="0" id="5289" />
+<TGConnectingPoint num="1" id="5290" />
+<extraparam>
+<Data requestName="req_Timer" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="5294" >
+<cdparam x="2209" y="1365" />
+<sizeparam width="56" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="temp(1)" />
+<TGConnectingPoint num="0" id="5292" />
+<TGConnectingPoint num="1" id="5293" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="5297" >
+<cdparam x="2161" y="1136" />
+<sizeparam width="153" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="seqNum=seqNum+wind" />
+<TGConnectingPoint num="0" id="5295" />
+<TGConnectingPoint num="1" id="5296" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="5300" >
+<cdparam x="2214" y="1248" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5298" />
+<TGConnectingPoint num="1" id="5299" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="5303" >
+<cdparam x="2187" y="1424" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =2" />
+<TGConnectingPoint num="0" id="5301" />
+<TGConnectingPoint num="1" id="5302" />
+</COMPONENT>
+
+<COMPONENT type="1006" id="5306" >
+<cdparam x="2278" y="1122" />
+<sizeparam width="79" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="write channel" value="fromTtoP(1)" />
+<TGConnectingPoint num="0" id="5304" />
+<TGConnectingPoint num="1" id="5305" />
+<extraparam>
+<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="301" id="5323" >
+<cdparam x="2283" y="1065" />
+<sizeparam width="114" height="15" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="UML Note" value="send Ack of SYN
+" />
+<TGConnectingPoint num="0" id="5307" />
+<TGConnectingPoint num="1" id="5308" />
+<TGConnectingPoint num="2" id="5309" />
+<TGConnectingPoint num="3" id="5310" />
+<TGConnectingPoint num="4" id="5311" />
+<TGConnectingPoint num="5" id="5312" />
+<TGConnectingPoint num="6" id="5313" />
+<TGConnectingPoint num="7" id="5314" />
+<TGConnectingPoint num="8" id="5315" />
+<TGConnectingPoint num="9" id="5316" />
+<TGConnectingPoint num="10" id="5317" />
+<TGConnectingPoint num="11" id="5318" />
+<TGConnectingPoint num="12" id="5319" />
+<TGConnectingPoint num="13" id="5320" />
+<TGConnectingPoint num="14" id="5321" />
+<TGConnectingPoint num="15" id="5322" />
+<extraparam>
+<Line value="send Ack of SYN" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1011" id="5326" >
+<cdparam x="2267" y="1267" />
+<sizeparam width="100" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="action state" value="tcpctrl.state =2" />
+<TGConnectingPoint num="0" id="5324" />
+<TGConnectingPoint num="1" id="5325" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5328" >
+<cdparam x="2307" y="1324" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5327" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="5331" >
+<cdparam x="2294" y="1199" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="send()" />
+<TGConnectingPoint num="0" id="5329" />
+<TGConnectingPoint num="1" id="5330" />
+<extraparam>
+<Data eventName="send" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="5333" >
+<cdparam x="1637" y="1057" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5332" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5335" >
+<cdparam x="2168" y="1421" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5334" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="5337" >
+<cdparam x="2267" y="1039" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="5336" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="5340" >
+<cdparam x="1465" y="1192" />
+<sizeparam width="129" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="send event" value="receive_Application()" />
+<TGConnectingPoint num="0" id="5338" />
+<TGConnectingPoint num="1" id="5339" />
+<extraparam>
+<Data eventName="receive_Application" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="5343" >
+<cdparam x="1698" y="1086" />
+<sizeparam width="60" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2900" minY="10" maxY="1900" />
+<infoparam name="read channel" value="temp(1) " />
+<TGConnectingPoint num="0" id="5341" />
+<TGConnectingPoint num="1" id="5342" />
+<extraparam>
+<Data channelName="temp" nbOfSamples="1" secPattern="" isAttacker="No" />
+</extraparam>
+</COMPONENT>
+
+<CONNECTOR type="115" id="5344" >
+<cdparam x="192" y="445" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="190" y="449" id="4595" />
+<P2  x="188" y="476" id="4756" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5213" >
-<cdparam x="1049" y="1223" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to action state" value="null" />
-<P1  x="1049" y="1236" id="4889" />
-<P2  x="1049" y="1261" id="4819" />
+<CONNECTOR type="115" id="5345" >
+<cdparam x="1048" y="795" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1048" y="795" id="4734" />
+<P2  x="1728" y="865" id="4656" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5214" >
-<cdparam x="883" y="884" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="883" y="884" id="4514" />
-<P2  x="883" y="917" id="4893" />
+<CONNECTOR type="115" id="5346" >
+<cdparam x="1048" y="795" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1089" y="954" id="4706" />
+<P2  x="1208" y="1010" id="4676" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5215" >
-<cdparam x="612" y="727" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="612" y="727" id="4486" />
-<P2  x="612" y="757" id="4891" />
+<CONNECTOR type="115" id="5347" >
+<cdparam x="1008" y="610" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to execI" value="null" />
+<P1  x="1008" y="610" id="4810" />
+<P2  x="1008" y="696" id="4738" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5216" >
-<cdparam x="532" y="727" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to action state" value="null" />
-<P1  x="532" y="727" id="4485" />
-<P2  x="496" y="763" id="4769" />
+<CONNECTOR type="115" id="5348" >
+<cdparam x="722" y="614" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to execI" value="null" />
+<P1  x="722" y="614" id="4825" />
+<P2  x="722" y="689" id="4694" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5217" >
-<cdparam x="799" y="1218" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="800" y="1218" id="4767" />
-<P2  x="800" y="1265" id="4705" />
+<CONNECTOR type="115" id="5349" >
+<cdparam x="504" y="597" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="504" y="597" id="4774" />
+<P2  x="572" y="702" id="4688" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5218" >
-<cdparam x="1009" y="954" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="115" id="5350" >
+<cdparam x="464" y="637" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from choice to execI" value="null" />
-<P1  x="1009" y="954" id="4501" />
-<P2  x="943" y="1020" id="4494" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5219" >
-<cdparam x="229" y="1194" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="230" y="1194" id="4841" />
-<P2  x="230" y="1232" id="4681" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5220" >
-<cdparam x="346" y="1198" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="346" y="1198" id="4847" />
-<P2  x="346" y="1224" id="4697" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="5221" >
-<cdparam x="438" y="1184" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="464" y="1184" id="4853" />
-<P2  x="464" y="1208" id="4686" />
+<P1  x="464" y="637" id="4775" />
+<P2  x="464" y="778" id="4742" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5222" >
-<cdparam x="496" y="793" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="496" y="793" id="4770" />
-<P2  x="496" y="825" id="4772" />
+<CONNECTOR type="115" id="5351" >
+<cdparam x="424" y="597" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="424" y="597" id="4773" />
+<P2  x="346" y="759" id="4722" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5223" >
-<cdparam x="943" y="1259" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="943" y="1259" id="4795" />
-<P2  x="943" y="1306" id="4797" />
+<CONNECTOR type="115" id="5352" >
+<cdparam x="289" y="619" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to read channel" value="null" />
+<P1  x="289" y="619" id="4783" />
+<P2  x="230" y="803" id="4879" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5224" >
-<cdparam x="1008" y="736" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to choice" value="null" />
-<P1  x="1008" y="736" id="4535" />
-<P2  x="1008" y="770" id="4528" />
+<CONNECTOR type="115" id="5353" >
+<cdparam x="249" y="579" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="249" y="579" id="4781" />
+<P2  x="132" y="789" id="4726" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5225" >
-<cdparam x="1008" y="835" />
+<CONNECTOR type="115" id="5354" >
+<cdparam x="371" y="93" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="1008" y="835" id="4531" />
-<P2  x="1049" y="929" id="4500" />
+<infoparam name="connector from for loop to notified event" value="null" />
+<P1  x="320" y="99" id="4813" />
+<P2  x="374" y="128" id="4821" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5226" >
-<cdparam x="1049" y="1291" />
+<CONNECTOR type="115" id="5355" >
+<cdparam x="234" y="169" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1049" y="1291" id="4820" />
-<P2  x="1049" y="1336" id="4822" />
+<P1  x="235" y="169" id="4819" />
+<P2  x="235" y="202" id="4816" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5227" >
-<cdparam x="1208" y="1152" />
+<CONNECTOR type="115" id="5356" >
+<cdparam x="234" y="104" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1208" y="1142" id="4479" />
-<P2  x="1208" y="1209" id="4895" />
+<infoparam name="connector from for loop to action state" value="null" />
+<P1  x="235" y="110" id="4814" />
+<P2  x="235" y="139" id="4818" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5228" >
-<cdparam x="1208" y="1239" />
+<CONNECTOR type="115" id="5357" >
+<cdparam x="234" y="47" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to action state" value="null" />
-<P1  x="1208" y="1239" id="4896" />
-<P2  x="1208" y="1290" id="4915" />
+<infoparam name="connector from start state to for loop" value="null" />
+<P1  x="234" y="47" id="4785" />
+<P2  x="235" y="80" id="4812" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5229" >
-<cdparam x="1208" y="1320" />
+<CONNECTOR type="115" id="5358" >
+<cdparam x="425" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to send event" value="null" />
-<P1  x="1208" y="1320" id="4916" />
-<P2  x="1208" y="1346" id="4923" />
+<infoparam name="connector from notified event to choice" value="null" />
+<P1  x="374" y="158" id="4822" />
+<P2  x="374" y="182" id="4764" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5230" >
-<cdparam x="1206" y="1385" />
+<CONNECTOR type="115" id="5359" >
+<cdparam x="564" y="482" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to action state" value="null" />
-<P1  x="1208" y="1376" id="4924" />
-<P2  x="1208" y="1397" id="4920" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="464" y="322" id="4848" />
+<P2  x="722" y="529" id="4827" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5231" >
-<cdparam x="1206" y="1088" />
+<CONNECTOR type="115" id="5360" >
+<cdparam x="722" y="559" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="1208" y="1075" id="4475" />
-<P2  x="1208" y="1102" id="4478" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="722" y="559" id="4828" />
+<P2  x="722" y="584" id="4824" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5232" >
-<cdparam x="1248" y="1035" />
+<CONNECTOR type="115" id="5361" >
+<cdparam x="604" y="442" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="1248" y="1035" id="4474" />
-<P2  x="1287" y="1065" id="4926" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="504" y="282" id="4844" />
+<P2  x="1008" y="523" id="4830" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5233" >
-<cdparam x="1207" y="1427" />
+<CONNECTOR type="115" id="5362" >
+<cdparam x="1007" y="553" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1208" y="1427" id="4921" />
-<P2  x="1208" y="1466" id="4918" />
+<infoparam name="connector from wait event to read channel" value="null" />
+<P1  x="1008" y="553" id="4831" />
+<P2  x="1008" y="580" id="4809" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5234" >
-<cdparam x="1553" y="1019" />
+<CONNECTOR type="115" id="5363" >
+<cdparam x="524" y="442" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="1567" y="1021" id="4445" />
-<P2  x="1529" y="1059" id="4438" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="464" y="322" id="4845" />
+<P2  x="464" y="487" id="4833" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5235" >
-<cdparam x="1529" y="1324" />
+<CONNECTOR type="115" id="5364" >
+<cdparam x="330" y="428" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1529" y="1289" id="4435" />
-<P2  x="1529" y="1343" id="4933" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="424" y="282" id="4846" />
+<P2  x="289" y="463" id="4836" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5236" >
-<cdparam x="1684" y="929" />
+<CONNECTOR type="115" id="5365" >
+<cdparam x="318" y="520" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to send event" value="null" />
-<P1  x="1728" y="930" id="4455" />
-<P2  x="1728" y="1021" id="4936" />
+<infoparam name="connector from wait event to choice" value="null" />
+<P1  x="289" y="493" id="4837" />
+<P2  x="289" y="554" id="4780" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5237" >
-<cdparam x="1615" y="1283" />
+<CONNECTOR type="115" id="5366" >
+<cdparam x="160" y="481" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1641" y="1270" id="4459" />
-<P2  x="1641" y="1294" id="4973" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="148" y="501" id="4757" />
+<P2  x="148" y="544" id="4804" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5238" >
-<cdparam x="1641" y="1324" />
+<CONNECTOR type="115" id="5367" >
+<cdparam x="290" y="388" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1641" y="1324" id="4974" />
-<P2  x="1641" y="1343" id="5015" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="424" y="282" id="4843" />
+<P2  x="188" y="378" id="4839" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5239" >
-<cdparam x="1529" y="1373" />
+<CONNECTOR type="115" id="5368" >
+<cdparam x="229" y="467" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1529" y="1373" id="4934" />
-<P2  x="1529" y="1400" id="5012" />
+<infoparam name="connector from wait event to choice" value="null" />
+<P1  x="188" y="408" id="4840" />
+<P2  x="190" y="419" id="4594" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5240" >
-<cdparam x="1529" y="1422" />
+<CONNECTOR type="115" id="5369" >
+<cdparam x="228" y="501" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="1529" y="1430" id="5013" />
-<P2  x="1529" y="1452" id="4928" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="228" y="501" id="4758" />
+<P2  x="228" y="524" id="4853" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5241" >
-<cdparam x="1642" y="1373" />
+<CONNECTOR type="115" id="5370" >
+<cdparam x="334" y="207" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to write channel" value="null" />
-<P1  x="1641" y="1373" id="5016" />
-<P2  x="1641" y="1399" id="5018" />
+<infoparam name="connector from choice to wait event" value="null" />
+<P1  x="334" y="207" id="4765" />
+<P2  x="301" y="223" id="4857" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5242" >
-<cdparam x="1956" y="1361" />
+<CONNECTOR type="115" id="5371" >
+<cdparam x="301" y="253" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to action state" value="null" />
-<P1  x="1956" y="1361" id="4413" />
-<P2  x="1920" y="1406" id="5028" />
+<infoparam name="connector from wait event to stop state" value="null" />
+<P1  x="301" y="253" id="4858" />
+<P2  x="301" y="285" id="4860" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5243" >
-<cdparam x="2100" y="1490" />
+<CONNECTOR type="115" id="5372" >
+<cdparam x="464" y="517" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="2101" y="1491" id="5036" />
-<P2  x="2101" y="1532" id="5038" />
+<infoparam name="connector from wait event to choice" value="null" />
+<P1  x="464" y="517" id="4834" />
+<P2  x="464" y="572" id="4772" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5244" >
-<cdparam x="1996" y="1401" />
+<CONNECTOR type="115" id="5373" >
+<cdparam x="329" y="579" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to action state" value="null" />
-<P1  x="1996" y="1401" id="4415" />
-<P2  x="1996" y="1429" id="5043" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="329" y="579" id="4782" />
+<P2  x="329" y="609" id="4855" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5245" >
-<cdparam x="1996" y="1459" />
+<CONNECTOR type="115" id="5374" >
+<cdparam x="126" y="574" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to action state" value="null" />
-<P1  x="1996" y="1459" id="5044" />
-<P2  x="1996" y="1488" id="5040" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="148" y="574" id="4805" />
+<P2  x="148" y="610" id="4807" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5246" >
-<cdparam x="2021" y="1038" />
+<CONNECTOR type="115" id="5375" >
+<cdparam x="414" y="207" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="2237" y="966" id="4405" />
-<P2  x="2237" y="1054" id="4462" />
+<infoparam name="connector from choice to select" value="null" />
+<P1  x="414" y="207" id="4766" />
+<P2  x="464" y="257" id="4842" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5247" >
-<cdparam x="2217" y="1323" />
+<CONNECTOR type="115" id="5376" >
+<cdparam x="230" y="833" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to write channel" value="null" />
-<P1  x="2237" y="1323" id="5086" />
-<P2  x="2237" y="1360" id="5088" />
+<infoparam name="connector from read channel to execI" value="null" />
+<P1  x="230" y="833" id="4880" />
+<P2  x="230" y="858" id="4746" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5248" >
-<cdparam x="2218" y="1094" />
+<CONNECTOR type="115" id="5377" >
+<cdparam x="716" y="749" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to action state" value="null" />
-<P1  x="2237" y="1094" id="4463" />
-<P2  x="2237" y="1131" id="5091" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="968" y="795" id="4733" />
+<P2  x="843" y="859" id="4716" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5249" >
-<cdparam x="2218" y="1161" />
+<CONNECTOR type="115" id="5378" >
+<cdparam x="720" y="1074" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to write channel" value="null" />
-<P1  x="2237" y="1161" id="5092" />
-<P2  x="2237" y="1193" id="5080" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="728" y="990" id="4929" />
+<P2  x="728" y="1027" id="4931" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5250" >
-<cdparam x="2218" y="1223" />
+<CONNECTOR type="115" id="5379" >
+<cdparam x="733" y="899" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="2237" y="1223" id="5081" />
-<P2  x="2237" y="1243" id="5094" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="803" y="884" id="4717" />
+<P2  x="728" y="960" id="4928" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5251" >
-<cdparam x="2216" y="1284" />
+<CONNECTOR type="115" id="5380" >
+<cdparam x="800" y="938" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to send request" value="null" />
-<P1  x="2237" y="1273" id="5095" />
-<P2  x="2237" y="1293" id="5085" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="843" y="924" id="4719" />
+<P2  x="800" y="1004" id="4710" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5252" >
-<cdparam x="2217" y="1390" />
+<CONNECTOR type="115" id="5381" >
+<cdparam x="800" y="1057" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to action state" value="null" />
-<P1  x="2237" y="1390" id="5089" />
-<P2  x="2237" y="1419" id="5097" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="800" y="1044" id="4711" />
+<P2  x="800" y="1081" id="4933" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5253" >
-<cdparam x="2341" y="1060" />
+<CONNECTOR type="115" id="5382" >
+<cdparam x="132" y="886" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="2317" y="1059" id="4467" />
-<P2  x="2317" y="1117" id="5100" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="132" y="886" id="5060" />
+<P2  x="132" y="933" id="4895" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5254" >
-<cdparam x="1529" y="1099" />
+<CONNECTOR type="115" id="5383" >
+<cdparam x="943" y="1061" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="1529" y="1099" id="4439" />
-<P2  x="1529" y="1127" id="4930" />
+<P1  x="943" y="1060" id="4699" />
+<P2  x="943" y="1118" id="4978" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5255" >
-<cdparam x="2101" y="1433" />
+<CONNECTOR type="115" id="5384" >
+<cdparam x="1049" y="1093" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to action state" value="null" />
-<P1  x="2101" y="1433" id="4399" />
-<P2  x="2101" y="1461" id="5035" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1049" y="1092" id="4751" />
+<P2  x="1049" y="1150" id="5003" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5256" >
-<cdparam x="2158" y="1460" />
+<CONNECTOR type="115" id="5385" >
+<cdparam x="1049" y="994" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="2141" y="1393" id="4398" />
-<P2  x="2178" y="1416" id="5130" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1049" y="994" id="4707" />
+<P2  x="1049" y="1052" id="4750" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5257" >
-<cdparam x="1688" y="890" />
+<CONNECTOR type="115" id="5386" >
+<cdparam x="696" y="742" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="1688" y="890" id="4453" />
-<P2  x="1607" y="996" id="4444" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="722" y="729" id="4695" />
+<P2  x="722" y="753" id="5028" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5258" >
-<cdparam x="1768" y="890" />
+<CONNECTOR type="115" id="5387" >
+<cdparam x="132" y="1125" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="1768" y="890" id="4454" />
-<P2  x="2277" y="941" id="4404" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="132" y="1125" id="5034" />
+<P2  x="132" y="1162" id="5036" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5259" >
-<cdparam x="2317" y="966" />
+<CONNECTOR type="115" id="5388" >
+<cdparam x="132" y="1192" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="2317" y="966" id="4406" />
-<P2  x="2317" y="1019" id="4466" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="132" y="1192" id="5037" />
+<P2  x="132" y="1231" id="5039" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5260" >
-<cdparam x="2341" y="1147" />
+<CONNECTOR type="115" id="5389" >
+<cdparam x="132" y="1066" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to send event" value="null" />
-<P1  x="2317" y="1147" id="5101" />
-<P2  x="2317" y="1194" id="5125" />
+<infoparam name="connector from action state to send request" value="null" />
+<P1  x="132" y="1066" id="4893" />
+<P2  x="132" y="1095" id="5033" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5261" >
-<cdparam x="2341" y="1224" />
+<CONNECTOR type="115" id="5390" >
+<cdparam x="229" y="1127" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to send event" value="null" />
-<P1  x="2317" y="1224" id="5126" />
-<P2  x="2317" y="1262" id="5120" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="230" y="1127" id="5042" />
+<P2  x="230" y="1164" id="5044" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5262" >
-<cdparam x="1731" y="1051" />
+<CONNECTOR type="115" id="5391" >
+<cdparam x="346" y="1131" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to choice" value="null" />
-<P1  x="1728" y="1051" id="4937" />
-<P2  x="1728" y="1081" id="5137" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="346" y="1131" id="5048" />
+<P2  x="346" y="1168" id="5050" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5263" >
-<cdparam x="1647" y="1021" />
+<CONNECTOR type="115" id="5392" >
+<cdparam x="346" y="1051" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="1647" y="1021" id="4446" />
-<P2  x="1647" y="1052" id="5128" />
+<infoparam name="connector from action state to send request" value="null" />
+<P1  x="346" y="1051" id="4899" />
+<P2  x="346" y="1101" id="5047" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5264" >
-<cdparam x="1826" y="1324" />
+<CONNECTOR type="115" id="5393" >
+<cdparam x="437" y="1118" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to action state" value="null" />
-<P1  x="1826" y="1324" id="4423" />
-<P2  x="1826" y="1344" id="5023" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="464" y="1115" id="5054" />
+<P2  x="464" y="1154" id="5056" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5265" >
-<cdparam x="1826" y="1374" />
+<CONNECTOR type="115" id="5394" >
+<cdparam x="438" y="1057" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1826" y="1374" id="5024" />
-<P2  x="1826" y="1452" id="5026" />
+<infoparam name="connector from action state to send request" value="null" />
+<P1  x="464" y="1057" id="4888" />
+<P2  x="464" y="1085" id="5053" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5266" >
-<cdparam x="1786" y="1284" />
+<CONNECTOR type="115" id="5395" >
+<cdparam x="132" y="808" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="1786" y="1284" id="4421" />
-<P2  x="1740" y="1330" id="5021" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="132" y="829" id="4727" />
+<P2  x="132" y="856" id="5059" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5267" >
-<cdparam x="1920" y="1436" />
+<CONNECTOR type="115" id="5396" >
+<cdparam x="230" y="898" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1920" y="1436" id="5029" />
-<P2  x="1920" y="1476" id="5031" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="230" y="898" id="4747" />
+<P2  x="230" y="935" id="5062" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5268" >
-<cdparam x="1996" y="1518" />
+<CONNECTOR type="115" id="5397" >
+<cdparam x="230" y="965" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="1996" y="1518" id="5041" />
-<P2  x="1996" y="1538" id="5033" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="230" y="965" id="5063" />
+<P2  x="230" y="997" id="4882" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5269" >
-<cdparam x="2036" y="1361" />
+<CONNECTOR type="115" id="5398" >
+<cdparam x="346" y="799" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="2036" y="1361" id="4414" />
-<P2  x="2101" y="1368" id="4396" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="346" y="799" id="4723" />
+<P2  x="346" y="826" id="5068" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5270" >
-<cdparam x="1866" y="1284" />
+<CONNECTOR type="115" id="5399" >
+<cdparam x="346" y="856" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="1866" y="1284" id="4422" />
-<P2  x="1996" y="1336" id="4412" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="346" y="856" id="5069" />
+<P2  x="346" y="895" id="4906" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5271" >
-<cdparam x="2341" y="1292" />
+<CONNECTOR type="115" id="5400" >
+<cdparam x="439" y="818" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="2317" y="1292" id="5121" />
-<P2  x="2317" y="1319" id="5123" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="464" y="818" id="4743" />
+<P2  x="464" y="860" id="5065" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5272" >
-<cdparam x="2217" y="1449" />
+<CONNECTOR type="115" id="5401" >
+<cdparam x="439" y="890" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from action state to stop state" value="null" />
-<P1  x="2237" y="1449" id="5098" />
-<P2  x="2237" y="1478" id="5083" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="464" y="890" id="5066" />
+<P2  x="464" y="936" id="4903" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5273" >
-<cdparam x="2277" y="1006" />
+<CONNECTOR type="115" id="5402" >
+<cdparam x="132" y="963" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to stop state" value="null" />
-<P1  x="2277" y="1006" id="4407" />
-<P2  x="2277" y="1034" id="5132" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="132" y="963" id="4896" />
+<P2  x="132" y="981" id="5080" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5274" >
-<cdparam x="1642" y="1429" />
+<CONNECTOR type="115" id="5403" >
+<cdparam x="132" y="1011" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="1641" y="1429" id="5019" />
-<P2  x="1641" y="1463" id="4976" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="132" y="1011" id="5081" />
+<P2  x="132" y="1036" id="4892" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5275" >
-<cdparam x="1529" y="1157" />
+<CONNECTOR type="115" id="5404" >
+<cdparam x="230" y="1027" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="1529" y="1157" id="4931" />
-<P2  x="1529" y="1187" id="5134" />
+<P1  x="230" y="1027" id="4883" />
+<P2  x="230" y="1047" id="5071" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5276" >
-<cdparam x="1529" y="1217" />
+<CONNECTOR type="115" id="5405" >
+<cdparam x="228" y="1088" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to execI" value="null" />
-<P1  x="1529" y="1217" id="5135" />
-<P2  x="1529" y="1249" id="4434" />
+<infoparam name="connector from send event to send request" value="null" />
+<P1  x="230" y="1077" id="5072" />
+<P2  x="230" y="1097" id="5041" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5277" >
-<cdparam x="1691" y="1156" />
+<CONNECTOR type="115" id="5406" >
+<cdparam x="346" y="925" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to execI" value="null" />
-<P1  x="1688" y="1156" id="4429" />
-<P2  x="1641" y="1230" id="4458" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="346" y="925" id="4907" />
+<P2  x="346" y="957" id="5074" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5278" >
-<cdparam x="1771" y="1156" />
+<CONNECTOR type="115" id="5407" >
+<cdparam x="348" y="987" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to choice" value="null" />
-<P1  x="1768" y="1156" id="4430" />
-<P2  x="1826" y="1259" id="4420" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="346" y="987" id="5075" />
+<P2  x="346" y="1021" id="4898" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5279" >
-<cdparam x="1731" y="1111" />
+<CONNECTOR type="115" id="5408" >
+<cdparam x="439" y="966" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to choice" value="null" />
-<P1  x="1728" y="1111" id="5138" />
-<P2  x="1728" y="1131" id="4428" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="464" y="966" id="4904" />
+<P2  x="464" y="978" id="5077" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="Timer" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1012" id="5287" >
-<cdparam x="509" y="222" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="5283" />
-<TGConnectingPoint num="1" id="5284" />
-<TGConnectingPoint num="2" id="5285" />
-<TGConnectingPoint num="3" id="5286" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="5280" >
-<father id="5287" num="0" />
-<cdparam x="464" y="232" />
-<sizeparam width="51" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ x==0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="5281" >
-<father id="5287" num="1" />
-<cdparam x="544" y="234" />
-<sizeparam width="41" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ x&gt;0 ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="5282" >
-<father id="5287" num="2" />
-<cdparam x="529" y="267" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1000" id="5289" >
-<cdparam x="489" y="26" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="5288" />
-</COMPONENT>
-
-<COMPONENT type="1001" id="5291" >
-<cdparam x="417" y="407" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5290" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="5294" >
-<cdparam x="396" y="339" />
-<sizeparam width="63" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="timeOut()" />
-<TGConnectingPoint num="0" id="5292" />
-<TGConnectingPoint num="1" id="5293" />
-<extraparam>
-<Data eventName="timeOut" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="5297" >
-<cdparam x="599" y="300" />
-<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="stop() " />
-<TGConnectingPoint num="0" id="5295" />
-<TGConnectingPoint num="1" id="5296" />
-<extraparam>
-<Data eventName="stop" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="5299" >
-<cdparam x="612" y="365" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5298" />
-</COMPONENT>
-
-<COMPONENT type="1017" id="5302" >
-<cdparam x="491" y="157" />
-<sizeparam width="70" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="notified event" value="x=?stop()" />
-<TGConnectingPoint num="0" id="5300" />
-<TGConnectingPoint num="1" id="5301" />
-<extraparam>
-<Data eventName="stop" variable="x" />
-</extraparam>
-</COMPONENT>
-
-<CONNECTOR type="115" id="5303" >
-<cdparam x="496" y="46" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="496" y="46" id="5288" />
-<P2  x="526" y="152" id="5300" />
+<CONNECTOR type="115" id="5409" >
+<cdparam x="438" y="1008" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="464" y="1008" id="5078" />
+<P2  x="464" y="1027" id="4887" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5304" >
-<cdparam x="484" y="237" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="484" y="237" id="5284" />
-<P2  x="427" y="334" id="5292" />
+<CONNECTOR type="115" id="5410" >
+<cdparam x="722" y="783" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="722" y="783" id="5029" />
+<P2  x="722" y="808" id="5083" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5305" >
-<cdparam x="427" y="364" />
+<CONNECTOR type="115" id="5411" >
+<cdparam x="722" y="838" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to stop state" value="null" />
-<P1  x="427" y="364" id="5293" />
-<P2  x="427" y="402" id="5290" />
+<P1  x="722" y="838" id="5084" />
+<P2  x="722" y="860" id="5031" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5306" >
-<cdparam x="622" y="325" />
+<CONNECTOR type="115" id="5412" >
+<cdparam x="800" y="1111" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to stop state" value="null" />
-<P1  x="622" y="325" id="5296" />
-<P2  x="622" y="360" id="5298" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="800" y="1111" id="4934" />
+<P2  x="800" y="1136" id="5086" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5307" >
-<cdparam x="524" y="175" />
+<CONNECTOR type="115" id="5413" >
+<cdparam x="798" y="1166" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from notified event to choice" value="null" />
-<P1  x="526" y="182" id="5301" />
-<P2  x="524" y="212" id="5283" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="800" y="1166" id="5087" />
+<P2  x="800" y="1188" id="4970" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5308" >
-<cdparam x="564" y="237" />
+<CONNECTOR type="115" id="5414" >
+<cdparam x="943" y="1148" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to wait event" value="null" />
-<P1  x="564" y="237" id="5285" />
-<P2  x="622" y="295" id="5295" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="943" y="1148" id="4979" />
+<P2  x="943" y="1173" id="5089" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="SmartCard" minX="10" maxX="1400" minY="10" maxY="1150" >
-<CONNECTOR type="115" id="5523" >
-<cdparam x="546" y="713" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="563" y="518" id="5522" />
-<P2  x="591" y="607" id="5370" />
+<CONNECTOR type="115" id="5415" >
+<cdparam x="950" y="1201" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="943" y="1203" id="5090" />
+<P2  x="943" y="1229" id="4998" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<COMPONENT type="1036" id="5520" >
-<cdparam x="556" y="473" />
-<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1010" />
-<infoparam name="decrypt" value="null" />
-<TGConnectingPoint num="0" id="5521" />
-<TGConnectingPoint num="1" id="5522" />
-<extraparam>
-<Data secPattern="autoEncrypt_fromDtoSC" />
-</extraparam>
-</COMPONENT>
-
-<CONNECTOR type="115" id="5511" >
-<cdparam x="250" y="813" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="257" y="748" id="5507" />
-<P2  x="293" y="758" id="5367" />
+<CONNECTOR type="115" id="5416" >
+<cdparam x="1049" y="1180" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="1049" y="1180" id="5004" />
+<P2  x="1049" y="1206" id="5092" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<COMPONENT type="1035" id="5505" >
-<cdparam x="250" y="703" />
-<sizeparam width="15" height="35" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="encrypt" value="null" />
-<TGConnectingPoint num="0" id="5506" />
-<TGConnectingPoint num="1" id="5507" />
-<extraparam>
-<Data secContext="autoEncrypt_fromSCtoD" type="Symmetric Encryption" overhead="0" size="" encTime="100" decTime="100" nonce="" key="" algorithm="" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="5310" >
-<cdparam x="430" y="408" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5309" />
-</COMPONENT>
-
-<COMPONENT type="1010" id="5313" >
-<cdparam x="416" y="364" />
-<sizeparam width="48" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="end() " />
-<TGConnectingPoint num="0" id="5311" />
-<TGConnectingPoint num="1" id="5312" />
-<extraparam>
-<Data eventName="end" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="5316" >
-<cdparam x="231" y="201" />
-<sizeparam width="143" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="connectionOpened() " />
-<TGConnectingPoint num="0" id="5314" />
-<TGConnectingPoint num="1" id="5315" />
-<extraparam>
-<Data eventName="connectionOpened" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1000" id="5318" >
-<cdparam x="159" y="66" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="5317" />
-</COMPONENT>
-
-<COMPONENT type="1010" id="5321" >
-<cdparam x="138" y="129" />
-<sizeparam width="57" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="reset() " />
-<TGConnectingPoint num="0" id="5319" />
-<TGConnectingPoint num="1" id="5320" />
-<extraparam>
-<Data eventName="reset" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="5324" >
-<cdparam x="108" y="182" />
-<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="answerToReset()" />
-<TGConnectingPoint num="0" id="5322" />
-<TGConnectingPoint num="1" id="5323" />
-<extraparam>
-<Data eventName="answerToReset" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="5327" >
-<cdparam x="143" y="237" />
-<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="pTS() " />
-<TGConnectingPoint num="0" id="5325" />
-<TGConnectingPoint num="1" id="5326" />
-<extraparam>
-<Data eventName="pTS" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="5330" >
-<cdparam x="121" y="308" />
-<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="pTSConfirm()" />
-<TGConnectingPoint num="0" id="5328" />
-<TGConnectingPoint num="1" id="5329" />
-<extraparam>
-<Data eventName="pTSConfirm" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="301" id="5347" >
-<cdparam x="376" y="98" />
-<sizeparam width="249" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="UML Note" value="The first two layers of the OSI model 
-are used to communicate between 
-the smart card and the terminal
-" />
-<TGConnectingPoint num="0" id="5331" />
-<TGConnectingPoint num="1" id="5332" />
-<TGConnectingPoint num="2" id="5333" />
-<TGConnectingPoint num="3" id="5334" />
-<TGConnectingPoint num="4" id="5335" />
-<TGConnectingPoint num="5" id="5336" />
-<TGConnectingPoint num="6" id="5337" />
-<TGConnectingPoint num="7" id="5338" />
-<TGConnectingPoint num="8" id="5339" />
-<TGConnectingPoint num="9" id="5340" />
-<TGConnectingPoint num="10" id="5341" />
-<TGConnectingPoint num="11" id="5342" />
-<TGConnectingPoint num="12" id="5343" />
-<TGConnectingPoint num="13" id="5344" />
-<TGConnectingPoint num="14" id="5345" />
-<TGConnectingPoint num="15" id="5346" />
-<extraparam>
-<Line value="The first two layers of the OSI model " />
-<Line value="are used to communicate between " />
-<Line value="the smart card and the terminal" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1007" id="5350" >
-<cdparam x="250" y="97" />
-<sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="start_TCP_IP()" />
-<TGConnectingPoint num="0" id="5348" />
-<TGConnectingPoint num="1" id="5349" />
-<extraparam>
-<Data requestName="start_TCP_IP" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1007" id="5353" >
-<cdparam x="236" y="148" />
-<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="start_Application()" />
-<TGConnectingPoint num="0" id="5351" />
-<TGConnectingPoint num="1" id="5352" />
-<breakpoint />
-<extraparam>
-<Data requestName="start_Application" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="5355" >
-<cdparam x="581" y="800" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5354" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="5358" >
-<cdparam x="236" y="611" />
-<sizeparam width="115" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="data_Ready_SC()" />
-<TGConnectingPoint num="0" id="5356" />
-<TGConnectingPoint num="1" id="5357" />
-<extraparam>
-<Data eventName="data_Ready_SC" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="5360" >
-<cdparam x="283" y="797" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5359" />
-</COMPONENT>
-
-<COMPONENT type="1009" id="5363" >
-<cdparam x="249" y="429" />
-<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read channel" value="fromTtoP(1) " />
-<TGConnectingPoint num="0" id="5361" />
-<TGConnectingPoint num="1" id="5362" />
-<extraparam>
-<Data channelName="fromTtoP" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="5366" >
-<cdparam x="266" y="385" />
-<sizeparam width="55" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="send() " />
-<TGConnectingPoint num="0" id="5364" />
-<TGConnectingPoint num="1" id="5365" />
-<extraparam>
-<Data eventName="send" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1006" id="5369" >
-<cdparam x="246" y="763" />
-<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="fromSCtoD(1)" />
-<TGConnectingPoint num="0" id="5367" />
-<TGConnectingPoint num="1" id="5368" />
-<extraparam>
-<Data channelName="fromSCtoD" nbOfSamples="1" secPattern="autoEncrypt_fromSCtoD" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="5372" >
-<cdparam x="559" y="612" />
-<sizeparam width="65" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="receive()" />
-<TGConnectingPoint num="0" id="5370" />
-<TGConnectingPoint num="1" id="5371" />
-<extraparam>
-<Data eventName="receive" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1009" id="5375" >
-<cdparam x="542" y="433" />
-<sizeparam width="98" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read channel" value="fromDtoSC(1) " />
-<TGConnectingPoint num="0" id="5373" />
-<TGConnectingPoint num="1" id="5374" />
-<extraparam>
-<Data channelName="fromDtoSC" nbOfSamples="1" secPattern="autoEncrypt_fromDtoSC" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1006" id="5378" >
-<cdparam x="549" y="649" />
-<sizeparam width="84" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="fromPtoT(1)" />
-<TGConnectingPoint num="0" id="5376" />
-<TGConnectingPoint num="1" id="5377" />
-<extraparam>
-<Data channelName="fromPtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="5381" >
-<cdparam x="532" y="390" />
-<sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="data_Ready(t, b) " />
-<TGConnectingPoint num="0" id="5379" />
-<TGConnectingPoint num="1" id="5380" />
-<breakpoint />
-<extraparam>
-<Data eventName="data_Ready" nbOfParams="5" />
-<Param index="0" value="t" />
-<Param index="1" value="b" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1014" id="5385" >
-<cdparam x="236" y="261" />
-<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="for loop" value="for(j=0;x==0;j = j)" />
-<TGConnectingPoint num="0" id="5382" />
-<TGConnectingPoint num="1" id="5383" />
-<TGConnectingPoint num="2" id="5384" />
-<extraparam>
-<Data init="j=0" condition="x==0" increment="j = j" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="5387" >
-<cdparam x="275" y="309" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5386" />
-</COMPONENT>
-
-<COMPONENT type="1018" id="5398" >
-<cdparam x="424" y="285" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="select" value="null" />
-<TGConnectingPoint num="0" id="5388" />
-<TGConnectingPoint num="1" id="5389" />
-<TGConnectingPoint num="2" id="5390" />
-<TGConnectingPoint num="3" id="5391" />
-<TGConnectingPoint num="4" id="5392" />
-<TGConnectingPoint num="5" id="5393" />
-<TGConnectingPoint num="6" id="5394" />
-<TGConnectingPoint num="7" id="5395" />
-<TGConnectingPoint num="8" id="5396" />
-<TGConnectingPoint num="9" id="5397" />
-</COMPONENT>
-
-<CONNECTOR type="115" id="5399" >
-<cdparam x="302" y="227" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="302" y="226" id="5315" />
-<P2  x="298" y="256" id="5382" />
+<CONNECTOR type="115" id="5417" >
+<cdparam x="1049" y="1223" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="1049" y="1236" id="5093" />
+<P2  x="1049" y="1261" id="5023" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5404" >
-<cdparam x="111" y="331" />
+<CONNECTOR type="115" id="5418" >
+<cdparam x="883" y="884" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to send request" value="null" />
-<P1  x="166" y="333" id="5329" />
-<P2  x="298" y="92" id="5348" />
-<Point x="166" y="353" />
-<Point x="225" y="353" />
-<Point x="225" y="72" />
-<Point x="278" y="72" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="883" y="884" id="4718" />
+<P2  x="883" y="917" id="5097" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="5400" >
-<father id="5404" num="0" />
-<cdparam x="166" y="353" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="5401" >
-<father id="5404" num="1" />
-<cdparam x="225" y="353" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="5402" >
-<father id="5404" num="2" />
-<cdparam x="225" y="72" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="5403" >
-<father id="5404" num="3" />
-<cdparam x="278" y="72" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" />
-<infoparam name="point " value="null" />
-</SUBCOMPONENT>
-
-<CONNECTOR type="115" id="5405" >
-<cdparam x="166" y="64" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5419" >
+<cdparam x="612" y="727" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to wait event" value="null" />
-<P1  x="166" y="86" id="5317" />
-<P2  x="166" y="124" id="5319" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="612" y="727" id="4690" />
+<P2  x="612" y="757" id="5095" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5406" >
-<cdparam x="166" y="154" />
+<CONNECTOR type="115" id="5420" >
+<cdparam x="532" y="727" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to send event" value="null" />
-<P1  x="166" y="154" id="5320" />
-<P2  x="166" y="177" id="5322" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="532" y="727" id="4689" />
+<P2  x="496" y="763" id="4973" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5407" >
-<cdparam x="312" y="133" />
+<CONNECTOR type="115" id="5421" >
+<cdparam x="799" y="1218" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to send request" value="null" />
-<P1  x="298" y="122" id="5349" />
-<P2  x="298" y="143" id="5351" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="800" y="1218" id="4971" />
+<P2  x="800" y="1265" id="4909" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5408" >
-<cdparam x="286" y="421" />
+<CONNECTOR type="115" id="5422" >
+<cdparam x="1009" y="954" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="293" y="410" id="5365" />
-<P2  x="293" y="424" id="5361" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1009" y="954" id="4705" />
+<P2  x="943" y="1020" id="4698" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5409" >
-<cdparam x="286" y="626" />
+<CONNECTOR type="115" id="5423" >
+<cdparam x="229" y="1194" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to send event" value="null" />
-<P1  x="293" y="454" id="5362" />
-<P2  x="293" y="606" id="5356" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="230" y="1194" id="5045" />
+<P2  x="230" y="1232" id="4885" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5410" >
-<cdparam x="286" y="788" />
+<CONNECTOR type="115" id="5424" >
+<cdparam x="346" y="1198" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to write channel" value="null" />
-<P1  x="293" y="636" id="5357" />
-<P2  x="257" y="698" id="5506" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="346" y="1198" id="5051" />
+<P2  x="346" y="1224" id="4901" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5411" >
-<cdparam x="286" y="844" />
+<CONNECTOR type="115" id="5425" >
+<cdparam x="438" y="1184" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="293" y="788" id="5368" />
-<P2  x="293" y="792" id="5359" />
+<P1  x="464" y="1184" id="5057" />
+<P2  x="464" y="1208" id="4890" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5412" >
-<cdparam x="607" y="620" />
+<CONNECTOR type="115" id="5426" >
+<cdparam x="496" y="793" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to send event" value="null" />
-<P1  x="591" y="458" id="5374" />
-<P2  x="563" y="468" id="5521" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="496" y="793" id="4974" />
+<P2  x="496" y="825" id="4976" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5413" >
-<cdparam x="606" y="774" />
+<CONNECTOR type="115" id="5427" >
+<cdparam x="943" y="1259" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="943" y="1259" id="4999" />
+<P2  x="943" y="1306" id="5001" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5428" >
+<cdparam x="1008" y="736" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to choice" value="null" />
+<P1  x="1008" y="736" id="4739" />
+<P2  x="1008" y="770" id="4732" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5429" >
+<cdparam x="1008" y="835" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1008" y="835" id="4735" />
+<P2  x="1049" y="929" id="4704" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5430" >
+<cdparam x="1049" y="1291" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1049" y="1291" id="5024" />
+<P2  x="1049" y="1336" id="5026" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5431" >
+<cdparam x="1208" y="1152" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1208" y="1142" id="4683" />
+<P2  x="1208" y="1209" id="5099" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5432" >
+<cdparam x="1208" y="1239" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to action state" value="null" />
+<P1  x="1208" y="1239" id="5100" />
+<P2  x="1208" y="1290" id="5119" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5433" >
+<cdparam x="1208" y="1320" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to send event" value="null" />
+<P1  x="1208" y="1320" id="5120" />
+<P2  x="1208" y="1346" id="5127" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5434" >
+<cdparam x="1206" y="1385" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to action state" value="null" />
+<P1  x="1208" y="1376" id="5128" />
+<P2  x="1208" y="1397" id="5124" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5435" >
+<cdparam x="1206" y="1088" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1208" y="1075" id="4679" />
+<P2  x="1208" y="1102" id="4682" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5436" >
+<cdparam x="1248" y="1035" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="1248" y="1035" id="4678" />
+<P2  x="1287" y="1065" id="5130" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5437" >
+<cdparam x="1207" y="1427" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1208" y="1427" id="5125" />
+<P2  x="1208" y="1466" id="5122" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5438" >
+<cdparam x="1553" y="1019" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1567" y="1021" id="4649" />
+<P2  x="1529" y="1059" id="4642" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5439" >
+<cdparam x="1529" y="1324" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1529" y="1289" id="4639" />
+<P2  x="1529" y="1343" id="5137" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5440" >
+<cdparam x="1684" y="929" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to send event" value="null" />
+<P1  x="1728" y="930" id="4659" />
+<P2  x="1728" y="1021" id="5140" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5441" >
+<cdparam x="1615" y="1283" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1641" y="1270" id="4663" />
+<P2  x="1641" y="1294" id="5177" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5442" >
+<cdparam x="1641" y="1324" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="1641" y="1324" id="5178" />
+<P2  x="1641" y="1343" id="5219" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5443" >
+<cdparam x="1529" y="1373" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="1529" y="1373" id="5138" />
+<P2  x="1529" y="1400" id="5216" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5444" >
+<cdparam x="1529" y="1422" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="1529" y="1430" id="5217" />
+<P2  x="1529" y="1452" id="5132" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5445" >
+<cdparam x="1642" y="1373" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to write channel" value="null" />
-<P1  x="591" y="637" id="5371" />
-<P2  x="591" y="644" id="5376" />
+<P1  x="1641" y="1373" id="5220" />
+<P2  x="1641" y="1399" id="5222" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5414" >
-<cdparam x="609" y="427" />
+<CONNECTOR type="115" id="5446" >
+<cdparam x="1956" y="1361" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to read channel" value="null" />
-<P1  x="591" y="415" id="5380" />
-<P2  x="591" y="428" id="5373" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="1956" y="1361" id="4617" />
+<P2  x="1920" y="1406" id="5232" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5415" >
-<cdparam x="606" y="836" />
+<CONNECTOR type="115" id="5447" >
+<cdparam x="2100" y="1490" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="2101" y="1491" id="5240" />
+<P2  x="2101" y="1532" id="5242" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5448" >
+<cdparam x="1996" y="1401" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="1996" y="1401" id="4619" />
+<P2  x="1996" y="1429" id="5247" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5449" >
+<cdparam x="1996" y="1459" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to action state" value="null" />
+<P1  x="1996" y="1459" id="5248" />
+<P2  x="1996" y="1488" id="5244" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5450" >
+<cdparam x="2021" y="1038" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="2237" y="966" id="4609" />
+<P2  x="2237" y="1054" id="4666" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5451" >
+<cdparam x="2217" y="1323" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to write channel" value="null" />
+<P1  x="2237" y="1323" id="5290" />
+<P2  x="2237" y="1360" id="5292" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5452" >
+<cdparam x="2218" y="1094" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to action state" value="null" />
+<P1  x="2237" y="1094" id="4667" />
+<P2  x="2237" y="1131" id="5295" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5453" >
+<cdparam x="2218" y="1161" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to write channel" value="null" />
+<P1  x="2237" y="1161" id="5296" />
+<P2  x="2237" y="1193" id="5284" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5454" >
+<cdparam x="2218" y="1223" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="2237" y="1223" id="5285" />
+<P2  x="2237" y="1243" id="5298" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5455" >
+<cdparam x="2216" y="1284" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to send request" value="null" />
+<P1  x="2237" y="1273" id="5299" />
+<P2  x="2237" y="1293" id="5289" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5456" >
+<cdparam x="2217" y="1390" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to action state" value="null" />
+<P1  x="2237" y="1390" id="5293" />
+<P2  x="2237" y="1419" id="5301" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5457" >
+<cdparam x="2341" y="1060" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="2317" y="1059" id="4671" />
+<P2  x="2317" y="1117" id="5304" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5458" >
+<cdparam x="1529" y="1099" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="1529" y="1099" id="4643" />
+<P2  x="1529" y="1127" id="5134" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5459" >
+<cdparam x="2101" y="1433" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="2101" y="1433" id="4603" />
+<P2  x="2101" y="1461" id="5239" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5460" >
+<cdparam x="2158" y="1460" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="2141" y="1393" id="4602" />
+<P2  x="2178" y="1416" id="5334" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5461" >
+<cdparam x="1688" y="890" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1688" y="890" id="4657" />
+<P2  x="1607" y="996" id="4648" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5462" >
+<cdparam x="1768" y="890" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1768" y="890" id="4658" />
+<P2  x="2277" y="941" id="4608" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="5463" >
+<cdparam x="2317" y="966" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="591" y="674" id="5377" />
-<P2  x="591" y="795" id="5354" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="2317" y="966" id="4610" />
+<P2  x="2317" y="1019" id="4670" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5416" >
-<cdparam x="298" y="173" />
+<CONNECTOR type="115" id="5464" >
+<cdparam x="2341" y="1147" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to for loop" value="null" />
-<P1  x="298" y="173" id="5352" />
-<P2  x="302" y="196" id="5314" />
+<infoparam name="connector from write channel to send event" value="null" />
+<P1  x="2317" y="1147" id="5305" />
+<P2  x="2317" y="1194" id="5329" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5417" >
-<cdparam x="328" y="291" />
+<CONNECTOR type="115" id="5465" >
+<cdparam x="2341" y="1224" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from for loop to stop state" value="null" />
-<P1  x="298" y="286" id="5384" />
-<P2  x="285" y="304" id="5386" />
+<infoparam name="connector from send event to send event" value="null" />
+<P1  x="2317" y="1224" id="5330" />
+<P2  x="2317" y="1262" id="5324" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5418" >
-<cdparam x="385" y="404" />
+<CONNECTOR type="115" id="5466" >
+<cdparam x="1731" y="1051" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from select to wait event" value="null" />
-<P1  x="399" y="300" id="5389" />
-<P2  x="293" y="380" id="5364" />
+<infoparam name="connector from send event to choice" value="null" />
+<P1  x="1728" y="1051" id="5141" />
+<P2  x="1728" y="1081" id="5341" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5419" >
-<cdparam x="533" y="602" />
+<CONNECTOR type="115" id="5467" >
+<cdparam x="1647" y="1021" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from select to wait event" value="null" />
-<P1  x="479" y="300" id="5390" />
-<P2  x="591" y="385" id="5379" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="1647" y="1021" id="4650" />
+<P2  x="1647" y="1052" id="5332" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5420" >
-<cdparam x="391" y="341" />
+<CONNECTOR type="115" id="5468" >
+<cdparam x="1826" y="1324" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from for loop to select" value="null" />
-<P1  x="360" y="275" id="5383" />
-<P2  x="439" y="275" id="5388" />
+<infoparam name="connector from choice to action state" value="null" />
+<P1  x="1826" y="1324" id="4627" />
+<P2  x="1826" y="1344" id="5227" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5421" >
-<cdparam x="164" y="262" />
+<CONNECTOR type="115" id="5469" >
+<cdparam x="1826" y="1374" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to send event" value="null" />
-<P1  x="166" y="262" id="5326" />
-<P2  x="166" y="303" id="5328" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1826" y="1374" id="5228" />
+<P2  x="1826" y="1452" id="5230" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5422" >
-<cdparam x="166" y="207" />
+<CONNECTOR type="115" id="5470" >
+<cdparam x="1786" y="1284" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to wait event" value="null" />
-<P1  x="166" y="207" id="5323" />
-<P2  x="166" y="232" id="5325" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="1786" y="1284" id="4625" />
+<P2  x="1740" y="1330" id="5225" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5423" >
-<cdparam x="439" y="340" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="439" y="340" id="5391" />
-<P2  x="440" y="359" id="5311" />
+<CONNECTOR type="115" id="5471" >
+<cdparam x="1920" y="1436" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1920" y="1436" id="5233" />
+<P2  x="1920" y="1476" id="5235" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5424" >
-<cdparam x="440" y="389" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="440" y="389" id="5312" />
-<P2  x="440" y="403" id="5309" />
+<CONNECTOR type="115" id="5472" >
+<cdparam x="1996" y="1518" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="1996" y="1518" id="5245" />
+<P2  x="1996" y="1538" id="5237" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="Application" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="5428" >
-<cdparam x="505" y="259" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="5426" />
-<TGConnectingPoint num="1" id="5427" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="5425" >
-<father id="5428" num="0" />
-<cdparam x="520" y="279" />
-<sizeparam width="16" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="10" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1010" id="5431" >
-<cdparam x="479" y="129" />
-<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="opened() " />
-<TGConnectingPoint num="0" id="5429" />
-<TGConnectingPoint num="1" id="5430" />
-<extraparam>
-<Data eventName="opened" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="5434" >
-<cdparam x="449" y="192" />
-<sizeparam width="125" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="connectionOpened()" />
-<TGConnectingPoint num="0" id="5432" />
-<TGConnectingPoint num="1" id="5433" />
-<extraparam>
-<Data eventName="connectionOpened" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1012" id="5442" >
-<cdparam x="495" y="514" />
-<sizeparam width="30" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="choice" value="null" />
-<TGConnectingPoint num="0" id="5438" />
-<TGConnectingPoint num="1" id="5439" />
-<TGConnectingPoint num="2" id="5440" />
-<TGConnectingPoint num="3" id="5441" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="5435" >
-<father id="5442" num="0" />
-<cdparam x="470" y="524" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="-20" minY="10" maxY="35" />
-<infoparam name="guard 1" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="5436" >
-<father id="5442" num="1" />
-<cdparam x="530" y="524" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="35" maxX="55" minY="10" maxY="35" />
-<infoparam name="guard 2" value="[ ]" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="-1" id="5437" >
-<father id="5442" num="2" />
-<cdparam x="515" y="559" />
-<sizeparam width="12" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="20" maxX="40" minY="45" maxY="70" />
-<infoparam name="guard 3" value="[ ]" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1000" id="5444" >
-<cdparam x="498" y="33" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="5443" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="5447" >
-<cdparam x="482" y="71" />
-<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="open()" />
-<TGConnectingPoint num="0" id="5445" />
-<TGConnectingPoint num="1" id="5446" />
-<extraparam>
-<Data eventName="open" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1006" id="5450" >
-<cdparam x="469" y="353" />
-<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="fromAtoT(1)" />
-<TGConnectingPoint num="0" id="5448" />
-<TGConnectingPoint num="1" id="5449" />
-<extraparam>
-<Data channelName="fromAtoT" nbOfSamples="1" secPattern="" isAttacker="No" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="5453" >
-<cdparam x="471" y="399" />
-<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="send_TCP()" />
-<TGConnectingPoint num="0" id="5451" />
-<TGConnectingPoint num="1" id="5452" />
-<accessibility />
-<extraparam>
-<Data eventName="send_TCP" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="5455" >
-<cdparam x="577" y="648" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5454" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="5458" >
-<cdparam x="563" y="589" />
-<sizeparam width="49" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="abort()" />
-<TGConnectingPoint num="0" id="5456" />
-<TGConnectingPoint num="1" id="5457" />
-<extraparam>
-<Data eventName="abort" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1008" id="5461" >
-<cdparam x="410" y="597" />
-<sizeparam width="47" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="close()" />
-<TGConnectingPoint num="0" id="5459" />
-<TGConnectingPoint num="1" id="5460" />
-<extraparam>
-<Data eventName="close" nbOfParams="5" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="5463" >
-<cdparam x="423" y="646" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="5462" />
-</COMPONENT>
-
-<CONNECTOR type="115" id="5464" >
-<cdparam x="510" y="294" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="510" y="294" id="5427" />
-<P2  x="509" y="348" id="5448" />
+<CONNECTOR type="115" id="5473" >
+<cdparam x="2036" y="1361" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="2036" y="1361" id="4618" />
+<P2  x="2101" y="1368" id="4600" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5465" >
-<cdparam x="508" y="424" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="508" y="424" id="5452" />
-<P2  x="510" y="504" id="5438" />
+<CONNECTOR type="115" id="5474" >
+<cdparam x="1866" y="1284" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1866" y="1284" id="4626" />
+<P2  x="1996" y="1336" id="4616" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5466" >
-<cdparam x="512" y="154" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="512" y="154" id="5430" />
-<P2  x="511" y="187" id="5432" />
+<CONNECTOR type="115" id="5475" >
+<cdparam x="2341" y="1292" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="2317" y="1292" id="5325" />
+<P2  x="2317" y="1319" id="5327" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5467" >
-<cdparam x="594" y="221" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="511" y="217" id="5433" />
-<P2  x="510" y="254" id="5426" />
+<CONNECTOR type="115" id="5476" >
+<cdparam x="2217" y="1449" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from action state to stop state" value="null" />
+<P1  x="2237" y="1449" id="5302" />
+<P2  x="2237" y="1478" id="5287" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5468" >
-<cdparam x="506" y="36" />
+<CONNECTOR type="115" id="5477" >
+<cdparam x="2277" y="1006" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to send event" value="null" />
-<P1  x="505" y="53" id="5443" />
-<P2  x="505" y="66" id="5445" />
+<infoparam name="connector from choice to stop state" value="null" />
+<P1  x="2277" y="1006" id="4611" />
+<P2  x="2277" y="1034" id="5336" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5469" >
-<cdparam x="508" y="154" />
+<CONNECTOR type="115" id="5478" >
+<cdparam x="1642" y="1429" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to write channel" value="null" />
-<P1  x="505" y="96" id="5446" />
-<P2  x="512" y="124" id="5429" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="1641" y="1429" id="5223" />
+<P2  x="1641" y="1463" id="5180" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5470" >
-<cdparam x="509" y="397" />
+<CONNECTOR type="115" id="5479" >
+<cdparam x="1529" y="1157" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to send event" value="null" />
-<P1  x="509" y="378" id="5449" />
-<P2  x="508" y="394" id="5451" />
+<P1  x="1529" y="1157" id="5135" />
+<P2  x="1529" y="1187" id="5338" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5471" >
-<cdparam x="587" y="614" />
+<CONNECTOR type="115" id="5480" >
+<cdparam x="1529" y="1217" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="587" y="614" id="5457" />
-<P2  x="587" y="643" id="5454" />
+<infoparam name="connector from send event to execI" value="null" />
+<P1  x="1529" y="1217" id="5339" />
+<P2  x="1529" y="1249" id="4638" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5472" >
-<cdparam x="471" y="608" />
+<CONNECTOR type="115" id="5481" >
+<cdparam x="1691" y="1156" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to send event" value="null" />
-<P1  x="470" y="529" id="5439" />
-<P2  x="433" y="592" id="5459" />
+<infoparam name="connector from choice to execI" value="null" />
+<P1  x="1688" y="1156" id="4633" />
+<P2  x="1641" y="1230" id="4662" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5473" >
-<cdparam x="433" y="622" />
+<CONNECTOR type="115" id="5482" >
+<cdparam x="1771" y="1156" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="433" y="622" id="5460" />
-<P2  x="433" y="641" id="5462" />
+<infoparam name="connector from choice to choice" value="null" />
+<P1  x="1768" y="1156" id="4634" />
+<P2  x="1826" y="1259" id="4624" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="5474" >
-<cdparam x="551" y="608" />
+<CONNECTOR type="115" id="5483" >
+<cdparam x="1731" y="1111" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="600" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from choice to send event" value="null" />
-<P1  x="550" y="529" id="5440" />
-<P2  x="587" y="584" id="5456" />
+<infoparam name="connector from read channel to choice" value="null" />
+<P1  x="1728" y="1111" id="5342" />
+<P2  x="1728" y="1131" id="4632" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java
index 15f8944447f5f95ea807c73b7cdfbee454a732e7..5413bfb2e1e02c43dd847f1fdf54fd17767b6042 100644
--- a/src/main/java/avatartranslator/AvatarTransition.java
+++ b/src/main/java/avatartranslator/AvatarTransition.java
@@ -63,7 +63,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
     public static final int TYPE_METHODONLY = 4;
     public static final int TYPE_ACTION_AND_METHOD = 5;
 
-    public static final double DEFAULT_PROBABILITY = 0.5;
+    public static final double DEFAULT_PROBABILITY = 1; // In fact the weight
 
     public int type = UNDEFINED;
 
diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
index 46f98e7aae524b706f9d17d2b43df083d223383e..e0768d667d19fda7306dc536c89194b5b6e2d5b2 100644
--- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
+++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
@@ -697,7 +697,8 @@ public class AvatarSimulationBlock {
             TraceManager.addDev("Current block " + this.getBlock().getName() + " lastTransaction=" + lastTransaction);
         }
 
-        boolean result = bee.getResultOf(act);
+        boolean result = bee.getResultOfWithIntExpr(act);
+        //boolean result = bee.getResultOf(act);
         if (bee.getError() != null) {
             TraceManager.addDev("Error: " + bee.getError());
         }
diff --git a/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java b/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java
index ea603fc4f02f07a6f85b55f067e2e963ee585969..d3791fc74602ecd1f5c8217e37529d704b3c9d71 100644
--- a/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java
+++ b/src/main/java/avatartranslator/modelchecker/AvatarModelChecker.java
@@ -771,8 +771,7 @@ public class AvatarModelChecker implements Runnable, myutil.Graph {
         }
     }
 
-
-    public boolean evaluateBoolExpression(String _expr, AvatarBlock _block, SpecificationBlock _sb) {
+    public boolean oldEvaluateBoolExpression(String _expr, AvatarBlock _block, SpecificationBlock _sb) {
         String act = _expr;
         int cpt = 0;
         for (AvatarAttribute at : _block.getAttributes()) {
@@ -808,6 +807,42 @@ public class AvatarModelChecker implements Runnable, myutil.Graph {
         return result;
     }
 
+    public boolean evaluateBoolExpression(String _expr, AvatarBlock _block, SpecificationBlock _sb) {
+        String act = _expr;
+        int cpt = 0;
+        for (AvatarAttribute at : _block.getAttributes()) {
+            String val = "";
+            if (at.isInt()) {
+                val = "" + _sb.values[cpt + SpecificationBlock.ATTR_INDEX];
+                if (val.startsWith("-")) {
+                    val = "(0" + val + ")";
+                }
+            } else if (at.isBool()) {
+                if (_sb.values[cpt + SpecificationBlock.ATTR_INDEX] == 0) {
+                    val = "f";
+                } else {
+                    val = "t";
+                }
+            }
+            act = Conversion.putVariableValueInString(AvatarSpecification.ops, act, _block.getAttribute(cpt).getName(), val);
+            cpt++;
+        }
+
+        BoolExpressionEvaluator bee = new BoolExpressionEvaluator();
+
+        if (act.trim().startsWith("100")) {
+            //TraceManager.addDev("Current block " + _block.getName());
+        }
+
+        boolean result = bee.getResultOfWithIntExpr(act);
+        if (bee.getError() != null) {
+            TraceManager.addDev("Error: " + bee.getError());
+        }
+
+        //TraceManager.addDev("Result of " + _expr + " = " + result);
+        return result;
+    }
+
     public int evaluateIntExpression(String _expr, AvatarBlock _block, SpecificationBlock _sb) {
         //TraceManager.addDev("Evaluating Int expression 1: " + _expr);
         String act = _expr;
diff --git a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
index 69eb54cfa615ccfd3114eafb5dcd9b91340f9cd9..932a74073f476b904837c299c1bcb87c231b266c 100755
--- a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
+++ b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
@@ -557,6 +557,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
 
                 String varName = AVATAR2ProVerif.translateTerm (trueAttr, null);
                 this.spec.addDeclaration (new ProVerifQueryAtt   (varName, true));
+                
                 TraceManager.addDev("|    attacker (" + varName + ")"); 
 
                 this.secrecyChecked.add (trueAttr);
@@ -1255,7 +1256,9 @@ public class AVATAR2ProVerif implements AvatarTranslator {
 
                         if (this.secrecyChecked.contains (attr)) {
                             UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "'" + attr.getName () + "' is re-assigned while its secrecy is being checked. Note that the proof will only guarantee the secrecy of the initial value of " + attr.getName () + ".");
-                            ce.setTDiagramPanel(((AvatarDesignPanel)(this.avspec.getReferenceObject())).getAvatarSMDPanel(arg.block.getName()));
+                            if (this.avspec.getReferenceObject() instanceof AvatarDesignPanel){
+	                            ce.setTDiagramPanel(((AvatarDesignPanel)(this.avspec.getReferenceObject())).getAvatarSMDPanel(arg.block.getName()));
+	                        }
                             ce.setTGComponent((TGComponent)(_asme.getReferenceObject()));
                             this.warnings.add(ce);
                         }
diff --git a/src/main/java/common/ConfigurationTTool.java b/src/main/java/common/ConfigurationTTool.java
index c847acf7ceab961d46d8225b8437ffa31ac1dc12..5838c938ae342b9031449e13dca763e93a355b66 100755
--- a/src/main/java/common/ConfigurationTTool.java
+++ b/src/main/java/common/ConfigurationTTool.java
@@ -38,10 +38,7 @@
 
 package common;
 
-import myutil.FileUtils;
-import myutil.MalformedConfigurationException;
-import myutil.PluginManager;
-import myutil.TraceManager;
+import myutil.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
@@ -224,8 +221,6 @@ public class ConfigurationTTool {
             throw new MalformedConfigurationException("Filepb");
         }
 
-
-
         while ( (index0 = data.indexOf("<LastOpenFile")) != -1) {
             index1 = data.indexOf("/>", index0+1);
             if (index1 == -1) {
@@ -235,6 +230,7 @@ public class ConfigurationTTool {
         }
 
         index0 = data.indexOf("</TURTLECONFIGURATION>");
+
         String toBeAdded = "";
         // Adding configuration there
         for(int i=0; i<LastOpenFiles.length; i++) {
@@ -243,7 +239,7 @@ public class ConfigurationTTool {
                 toBeAdded = toBeAdded + "<LastOpenFile data=\"" + file + "\" />\n";
             }
         }
-        data = data.substring(0, index0-1) + toBeAdded + data.substring(index0, data.length());
+        data = data.substring(0, index0-1) + toBeAdded + "\n" + data.substring(index0, data.length());
 
         //sb.append("data = " + data + " ConfigurationTTool.LastOpenFile=" + ConfigurationTTool.LastOpenFile);
 
@@ -338,6 +334,9 @@ public class ConfigurationTTool {
                 write = true;
             }
         }
+
+        data = Conversion.replaceAllString(data, "\n\n", "\n");
+
         if (write) {
             //sb.append("Writing data=" + data);
             try {
diff --git a/src/main/java/dseengine/DSEConfiguration.java b/src/main/java/dseengine/DSEConfiguration.java
index d8cf3eb5f2712bb6735890c39f0333f438471529..7e61f1c9783ebc185febd9e5760e7adee73a4278 100755
--- a/src/main/java/dseengine/DSEConfiguration.java
+++ b/src/main/java/dseengine/DSEConfiguration.java
@@ -1501,7 +1501,7 @@ public class DSEConfiguration implements Runnable  {
                 // TraceManager.addDev("tmlcdp " + tmlcdp);
                 //
                 //Repeat for secured mapping
-                TMLMapping<TGComponent> secMapping = mainGUI.gtm.autoSecure(mainGUI, "mapping" +(cpt-1),tmla, newArch, encComp, overhead, decComp,true,false,false);
+                TMLMapping<TGComponent> secMapping = mainGUI.gtm.autoSecure(mainGUI, "mapping" +(cpt-1),tmla, newArch, encComp, overhead, decComp,true,false,false, new HashMap<String, java.util.List<String>>());
 
                 //Run simulations on this mapping
                 if (generateAndCompileMappingCode(secMapping, _debug, _optimize)  >= 0) {
diff --git a/src/main/java/graph/RG.java b/src/main/java/graph/RG.java
index 3d28cefc6519ac1fac3d05426bd2d45a1794a277..432c7cbcb90e3fe00c09c3c9d14033555500e223 100755
--- a/src/main/java/graph/RG.java
+++ b/src/main/java/graph/RG.java
@@ -110,7 +110,7 @@ public class RG {
             return null;
         }
 
-        RG ret = new RG(name + "_Test");
+        RG ret = new RG("TestSeq_" + name);
         ret.graph = testSequencesGraph;
         return ret;
     }
diff --git a/src/main/java/myutil/BoolExpressionEvaluator.java b/src/main/java/myutil/BoolExpressionEvaluator.java
index 8424edd7d02b5b7abb5a4c306650d28fd0a515af..2d9e94e80f8d57634e22753480de411427862644 100644
--- a/src/main/java/myutil/BoolExpressionEvaluator.java
+++ b/src/main/java/myutil/BoolExpressionEvaluator.java
@@ -1,26 +1,26 @@
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
+ *
  * ludovic.apvrille AT enst.fr
- * 
+ *
  * This software is a computer program whose purpose is to allow the
  * edition of TURTLE analysis, design and deployment diagrams, to
  * allow the generation of RT-LOTOS or Java code from this diagram,
  * and at last to allow the analysis of formal validation traces
  * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
  * from INRIA Rhone-Alpes.
- * 
+ *
  * This software is governed by the CeCILL  license under French law and
  * abiding by the rules of distribution of free software.  You can  use,
  * modify and/ or redistribute the software under the terms of the CeCILL
  * license as circulated by CEA, CNRS and INRIA at the following URL
  * "http://www.cecill.info".
- * 
+ *
  * As a counterpart to the access to the source code and  rights to copy,
  * modify and redistribute granted by the license, users are provided only
  * with a limited warranty  and the software's author,  the holder of the
  * economic rights,  and the successive licensors  have only  limited
  * liability.
- * 
+ *
  * In this respect, the user's attention is drawn to the risks associated
  * with loading,  using,  modifying and/or developing or reproducing the
  * software by the user in light of its specific status of free software,
@@ -31,23 +31,22 @@
  * requirements in conditions enabling the security of their systems and/or
  * data to be ensured and,  more generally, to use and operate it in the
  * same conditions as regards security.
- * 
+ *
  * The fact that you are presently reading this means that you have had
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
 
-
-
 package myutil;
 
 import java.util.StringTokenizer;
 
 /**
-   * Class BoolExpressionEvaluator
-   * Creation: 13/12/2010
-   * Version 2.0 13/12/2010
-   * @author Ludovic APVRILLE
+ * Class BoolExpressionEvaluator
+ * Creation: 13/12/2010
+ * Version 2.0 13/12/2010
+ *
+ * @author Ludovic APVRILLE
  */
 public class BoolExpressionEvaluator {
 
@@ -60,9 +59,9 @@ public class BoolExpressionEvaluator {
         public static final int BOOL_BINARY_OP = 4;
         public static final int BOOL_UNARY_OP = 5;
         public static final int OPEN_PARENTHESIS = 6;
-	public static final int UNKNOWN_TERM = 7;
+        public static final int UNKNOWN_TERM = 7;
 
-        public int id = (int)(Math.ceil(Math.random() * 10000000));
+        public int id = (int) (Math.ceil(Math.random() * 10000000));
         public int i = -18;
         public boolean b;
         public int res; //-1: available, 0:int, 2:bool, 3:ko, others : OPs
@@ -74,7 +73,6 @@ public class BoolExpressionEvaluator {
         public IntBoolRes father;
 
 
-
         public IntBoolRes() {
             res = AVAILABLE;
         }
@@ -98,18 +96,17 @@ public class BoolExpressionEvaluator {
             father = _father;
         }
 
-	public IntBoolRes(String val, IntBoolRes _father) {
-	    symb = val;
+        public IntBoolRes(String val, IntBoolRes _father) {
+            symb = val;
             res = UNKNOWN_TERM;
             father = _father;
         }
 
-	public  IntBoolRes getTop() {
-	    if (father == null) {
-		return this;
-	    }
-	    else return father.getTop();
-	}
+        public IntBoolRes getTop() {
+            if (father == null) {
+                return this;
+            } else return father.getTop();
+        }
 
         public IntBoolRes addTerminalInt(int _value) {
             if (isFull()) {
@@ -118,10 +115,10 @@ public class BoolExpressionEvaluator {
 
             IntBoolRes news = new IntBoolRes(_value, this);
             if (left == null) {
-                TraceManager.addDev("Adding on the left:" + _value);
+                //TraceManager.addDev("Adding on the left:" + _value);
                 left = news;
             } else {
-                TraceManager.addDev("Adding on the right:" + _value);
+                //TraceManager.addDev("Adding on the right:" + _value);
                 right = news;
             }
             return news;
@@ -141,8 +138,8 @@ public class BoolExpressionEvaluator {
             }
             return news;
         }
-	
-	public IntBoolRes addTerminalUnknown(String val) {
+
+        public IntBoolRes addTerminalUnknown(String val) {
             if (isFull()) {
                 return null;
             }
@@ -155,7 +152,7 @@ public class BoolExpressionEvaluator {
             }
             return news;
         }
-	
+
 
         public IntBoolRes addOpenParenthesis() {
             if ((left != null) && (right != null)) {
@@ -186,16 +183,16 @@ public class BoolExpressionEvaluator {
 
         public IntBoolRes addIntOperator(int _op) {
             // Must have at least one right operator
-            TraceManager.addDev("Add int op");
+            //TraceManager.addDev("Add int op");
             if (left == null) {
-                TraceManager.addDev("No left terminal!");
+                //TraceManager.addDev("No left terminal!");
                 return null;
             }
 
             if (right != null) {
                 // Must change the tree structure according to the operator priority
                 IntBoolRes newE = new IntBoolRes(INT_BINARY_OP, _op, this);
-		return addBinaryChangeTreeStruct(newE);
+                return addBinaryChangeTreeStruct(newE);
                 /*newE.left = right;
                 newE.father = right.father;
                 right.father = newE;
@@ -209,14 +206,14 @@ public class BoolExpressionEvaluator {
             if (!isAvailable()) {
                 return null;
             }
-	    
+
             res = INT_BINARY_OP;
             op = _op;
             return this;
         }
 
-	public IntBoolRes addUnaryOperator(int _op) {
-	    if ((left != null) && (right != null)) {
+        public IntBoolRes addUnaryOperator(int _op) {
+            if ((left != null) && (right != null)) {
                 return null;
             }
 
@@ -238,13 +235,13 @@ public class BoolExpressionEvaluator {
             newE.left = topPar;
 
             return topPar;
-	}
+        }
 
         public IntBoolRes addBinaryOperator(int _op) {
             // Must have at least one right operator
-            TraceManager.addDev("Add binary op");
+            //TraceManager.addDev("Add binary op");
             if (left == null) {
-                TraceManager.addDev("No left terminal!");
+                //TraceManager.addDev("No left terminal!");
                 return null;
             }
 
@@ -260,7 +257,7 @@ public class BoolExpressionEvaluator {
             if (!isAvailable()) {
                 return null;
             }
-	    
+
             res = BOOL_BINARY_OP;
             op = _op;
             return this;
@@ -269,7 +266,7 @@ public class BoolExpressionEvaluator {
         public IntBoolRes addBinaryChangeTreeStruct(IntBoolRes newE) {
 
             // Look for the father
-            if (isABinaryOperator() && (newE.getPriority()>=getPriority())) {
+            if (isABinaryOperator() && (newE.getPriority() >= getPriority())) {
                 newE.left = right;
                 right.father = newE;
                 this.right = newE;
@@ -278,35 +275,35 @@ public class BoolExpressionEvaluator {
                 // We must find the father where to add the operator
                 // We thus look for the first father with no binary operator
                 // or with a binary operator that has a higher priority
-                TraceManager.addDev("----- Must find a target");
+                //TraceManager.addDev("----- Must find a target");
                 IntBoolRes targetF = this.father;
 
                 boolean go = true;
-                while(go == true) {
-		    TraceManager.addDev("in loop targetF=" + targetF);
+                while (go == true) {
+                    //TraceManager.addDev("in loop targetF=" + targetF);
                     if (targetF == null) {
                         go = false;
                     } else {
                         if (!(targetF.isABinaryOperator())) {
                             go = false;
                         } else if (targetF.hasAHigherPriorityThan(newE)) {
-			    IntBoolRes nexT = targetF.father;
-			    if (nexT == targetF) {
-				go = false;
-			    }
-			    targetF = nexT;
+                            IntBoolRes nexT = targetF.father;
+                            if (nexT == targetF) {
+                                go = false;
+                            }
+                            targetF = nexT;
                         } else {
-			    go = false;
-			}
+                            go = false;
+                        }
                     }
                 }
 
-                TraceManager.addDev("**************** Considering targetF=" + targetF);
+                //TraceManager.addDev("**************** Considering targetF=" + targetF);
 
                 if (targetF == null) {
                     newE.left = top;
                     top.father = newE;
-		    newE.father = null;
+                    newE.father = null;
                     top = newE;
                     return top;
                 } else {
@@ -317,7 +314,7 @@ public class BoolExpressionEvaluator {
                         targetF.father = newE;
                         return newE;
                     } else {
-                        TraceManager.addDev("Unaryoperator");
+                        //TraceManager.addDev("Unaryoperator");
                         newE.left = targetF.left;
                         targetF.left = newE;
                         newE.father = targetF;
@@ -358,7 +355,7 @@ public class BoolExpressionEvaluator {
             return false;
         }
 
-        public boolean isABinaryOperator(){
+        public boolean isABinaryOperator() {
             return (res == INT_BINARY_OP) || (res == BOOL_BINARY_OP);
         }
 
@@ -375,7 +372,7 @@ public class BoolExpressionEvaluator {
                 if ((op == PLUS_TOKEN) || (op == MINUS_TOKEN))
                     return 2;
                 else {
-                    TraceManager.addDev("HAVE PRIORITY 3");
+                    //TraceManager.addDev("HAVE PRIORITY 3");
                     return 3;
                 }
             }
@@ -388,7 +385,7 @@ public class BoolExpressionEvaluator {
             if (res == 0) {
                 return "" + i;
             }
-            return ""+b;
+            return "" + b;
         }
 
         public Object getObjectValue() {
@@ -404,9 +401,9 @@ public class BoolExpressionEvaluator {
 
         private int analysisArg(Object ob1) {
             if (ob1 instanceof Integer) {
-                return ((Integer)ob1).intValue();
+                return ((Integer) ob1).intValue();
             } else {
-                if (((Boolean)ob1).booleanValue()) {
+                if (((Boolean) ob1).booleanValue()) {
                     return 1;
                 } else {
                     return 0;
@@ -414,37 +411,35 @@ public class BoolExpressionEvaluator {
             }
         }
 
-	private Boolean makeUnaryOp(int op, int elt1) {
-	    if (op == NOT_TOKEN) {
-		if (elt1 == 0) {
-		    return new Boolean(true);
-		}
-		else
-		    return new Boolean(false);
-	    }
-	    return null;
-	}
-	
+        private Boolean makeUnaryOp(int op, int elt1) {
+            if (op == NOT_TOKEN) {
+                if (elt1 == 0) {
+                    return new Boolean(true);
+                } else
+                    return new Boolean(false);
+            }
+            return null;
+        }
+
 
         private Boolean makeBinaryOp(int op, int elt1, int elt2) {
             if (op == EQUAL_TOKEN) {
                 return new Boolean(elt1 == elt2);
             }
 
-	    if (op == NOT_EQUAL_TOKEN) {
+            if (op == NOT_EQUAL_TOKEN) {
                 return new Boolean(elt1 != elt2);
             }
 
-	    if (op == OR_TOKEN) {
+            if (op == OR_TOKEN) {
                 return new Boolean((elt1 != 0) || (elt2 != 0));
             }
 
-	    if (op == AND_TOKEN) {
+            if (op == AND_TOKEN) {
                 return new Boolean((elt1 != 0) && (elt2 != 0));
             }
 
 
-
             return null;
         }
 
@@ -462,30 +457,30 @@ public class BoolExpressionEvaluator {
             }
 
             if (op == DIV_TOKEN) {
-		//TraceManager.addDev("Div token .. elt1 = " + elt1 + " elt2 = " + elt2 + " res=" +  new Integer(elt1 / elt2).intValue());		
+                //TraceManager.addDev("Div token .. elt1 = " + elt1 + " elt2 = " + elt2 + " res=" +  new Integer(elt1 / elt2).intValue());
                 return new Integer(elt1 / elt2);
             }
 
-	    return null;
-	}
+            return null;
+        }
 
-	private Boolean makeIntegerToBooleanOp(int op, int elt1, int elt2) {
+        private Boolean makeIntegerToBooleanOp(int op, int elt1, int elt2) {
 
-	    if (op == LT_TOKEN) {
-		return new Boolean(elt1 < elt2);
-	    }
+            if (op == LT_TOKEN) {
+                return new Boolean(elt1 < elt2);
+            }
 
-	     if (op == GT_TOKEN) {
-		return new Boolean(elt1 > elt2);
-	    }
+            if (op == GT_TOKEN) {
+                return new Boolean(elt1 > elt2);
+            }
 
-	     if (op == LTEQ_TOKEN) {
-		return new Boolean(elt1 <= elt2);
-	    }
+            if (op == LTEQ_TOKEN) {
+                return new Boolean(elt1 <= elt2);
+            }
 
-	     if (op == GTEQ_TOKEN) {
-		return new Boolean(elt1 >= elt2);
-	    }
+            if (op == GTEQ_TOKEN) {
+                return new Boolean(elt1 >= elt2);
+            }
 
             return null;
         }
@@ -496,21 +491,21 @@ public class BoolExpressionEvaluator {
                 return getObjectValue();
             }
 
-	    if (res == BOOL_UNARY_OP) {
-		if (left == null) {
-		    errorMessage = "Badly formatted unary boolean operator";
+            if (res == BOOL_UNARY_OP) {
+                if (left == null) {
+                    errorMessage = "Badly formatted unary boolean operator";
                     return null;
-		}
-		Object ob1 = left.computeValue();
-		if (!(ob1 instanceof Boolean)) {
-		    errorMessage = "Bad operand for  unary boolean operator";
+                }
+                Object ob1 = left.computeValue();
+                if (!(ob1 instanceof Boolean)) {
+                    errorMessage = "Bad operand for  unary boolean operator";
                     return null;
-		}
-		int elt1 = analysisArg(ob1);
-		Boolean result = makeUnaryOp(op, elt1);
-		TraceManager.addDev("Result unary=" + result);
-		return result;
-	    }
+                }
+                int elt1 = analysisArg(ob1);
+                Boolean result = makeUnaryOp(op, elt1);
+                //TraceManager.addDev("Result unary=" + result);
+                return result;
+            }
 
             if (res == BOOL_BINARY_OP) {
                 if ((right == null) || (left == null)) {
@@ -521,18 +516,18 @@ public class BoolExpressionEvaluator {
                 Object ob2 = left.computeValue();
                 if ((ob1 == null) || (ob2 == null))
                     return null;
-                if (((ob1 instanceof Integer) && (ob2 instanceof Integer)) ||  ((ob1 instanceof Boolean) && (ob2 instanceof Boolean))) {
+                if (((ob1 instanceof Integer) && (ob2 instanceof Integer)) || ((ob1 instanceof Boolean) && (ob2 instanceof Boolean))) {
                     int elt1 = analysisArg(ob1);
                     int elt2 = analysisArg(ob2);
 
                     Boolean result = makeBinaryOp(op, elt1, elt2);
-                    TraceManager.addDev("Result binary=" + result);
+                    //TraceManager.addDev("Result binary=" + result);
                     return result;
                 }
             }
 
             if (res == INT_BINARY_OP) {
-                TraceManager.addDev("Found binary int expr");
+                //TraceManager.addDev("Found binary int expr");
                 if ((right == null) || (left == null)) {
                     errorMessage = "Badly formatted binary int operator";
                     TraceManager.addDev("Found binary int expr in null");
@@ -548,13 +543,13 @@ public class BoolExpressionEvaluator {
                     int elt1 = analysisArg(ob1);
                     int elt2 = analysisArg(ob2);
 
-		    if (isIntToBooleanOperator(op)) {
-			Boolean resB = makeIntegerToBooleanOp(op, elt1, elt2);
-			return resB;
-		    }
+                    if (isIntToBooleanOperator(op)) {
+                        Boolean resB = makeIntegerToBooleanOp(op, elt1, elt2);
+                        return resB;
+                    }
 
                     Integer result = makeIntegerOp(op, elt1, elt2);
-                    TraceManager.addDev("Result int=" + result);
+                    //TraceManager.addDev("Result int=" + result);
                     return result;
                 } else {
                     errorMessage = "Invalid operands in integer operations";
@@ -570,7 +565,7 @@ public class BoolExpressionEvaluator {
                 return left.computeValue();
             }
 
-	    if (res == AVAILABLE) {
+            if (res == AVAILABLE) {
                 if (left == null) {
                     return null;
                 }
@@ -604,17 +599,17 @@ public class BoolExpressionEvaluator {
             s += " type:" + res + " op:" + toStringAction(op) + " int:" + i + " bool:" + b;
 
             if (left != null) {
-                s += left.toString(dec+1);
+                s += left.toString(dec + 1);
             }
             if (right != null) {
-                s += right.toString(dec+1);
+                s += right.toString(dec + 1);
             }
             return s;
         }
 
         private String newLine(int dec) {
             String s = "";
-            for (int i=0; i<dec; i++) {
+            for (int i = 0; i < dec; i++) {
                 s += "\t";
             }
             return s;
@@ -631,7 +626,6 @@ public class BoolExpressionEvaluator {
     public static final int FALSE_VALUE = 0;
 
 
-
     public static final int NUMBER_TOKEN = -1;
     public static final int BOOL_TOKEN = -2;
     public static final int EQUAL_TOKEN = -3;
@@ -652,10 +646,10 @@ public class BoolExpressionEvaluator {
     public static final int DIV_TOKEN = -17;
     public static final int MULT_TOKEN = -18;
 
-    public static final String [] VAL_S = {"true", "false", "nb", "bool", "==", "<", ">", "not", "or", "and", "=<", ">=", "eol", "(", ")", " ", "!=", "-", "/", "*", "+"};
+    public static final String[] VAL_S = {"true", "false", "nb", "bool", "==", "<", ">", "not", "or", "and", "=<", ">=", "eol", "(", ")", " ", "!=", "-", "/", "*", "+"};
 
     public static final boolean isIntToBooleanOperator(int op) {
-	return ((op == LT_TOKEN) || (op == GT_TOKEN) || (op == LTEQ_TOKEN) || (op == GTEQ_TOKEN));
+        return ((op == LT_TOKEN) || (op == GT_TOKEN) || (op == LTEQ_TOKEN) || (op == GTEQ_TOKEN));
     }
 
     public static String toStringAction(int val) {
@@ -688,7 +682,7 @@ public class BoolExpressionEvaluator {
     }
 
     public void setSupportUnknownTerminal(boolean support) {
-	supportUnknownTerminal = support;
+        supportUnknownTerminal = support;
     }
 
 
@@ -701,7 +695,7 @@ public class BoolExpressionEvaluator {
             return errorMessage;
         }
 
-        return errorMessage.substring(index+1, errorMessage.length());
+        return errorMessage.substring(index + 1, errorMessage.length());
     }
 
     public String getFullError() {
@@ -718,6 +712,8 @@ public class BoolExpressionEvaluator {
 
     public boolean getResultOf(String _expr) {
         //TraceManager.addDev("Evaluating bool expr: " + _expr);
+
+        String origin = _expr;
         _expr = Conversion.replaceAllString(_expr, "not", "!").trim();
 
         nbOpen = 0;
@@ -748,28 +744,27 @@ public class BoolExpressionEvaluator {
         int index;
         int indexPar;
 
-        while((index = _expr.indexOf("not(")) != -1) {
-            indexPar = Conversion.findMatchingParenthesis(_expr, index+3, '(', ')');
-            if( indexPar == -1) {
+        while ((index = _expr.indexOf("not(")) != -1) {
+            indexPar = Conversion.findMatchingParenthesis(_expr, index + 3, '(', ')');
+            if (indexPar == -1) {
                 errorMessage = "Parenthesis not maching at index " + (index + 3) + " in expression: " + _expr;
                 return false;
             }
 
-            _expr = _expr.substring(0, index) + "(!" + _expr.substring(index+3, indexPar) + ")" + _expr.substring(indexPar, _expr.length());
+            _expr = _expr.substring(0, index) + "(!" + _expr.substring(index + 3, indexPar) + ")" + _expr.substring(indexPar, _expr.length());
         }
 
 
-
         //TraceManager.addDev("Computing:" + _expr);
 
-        tokens = new java.util.StringTokenizer(_expr," \t\n\r!$=&|<>():;tf",true);
+        tokens = new java.util.StringTokenizer(_expr, " \t\n\r!$=&|<>():;tf", true);
 
         //TraceManager.addDev("Evaluating bool bool bool expr: " + _expr);
 
         int result = parseRootExpr1();
 
         if (getError() != null) {
-            TraceManager.addDev("Error: " + getError());
+            TraceManager.addDev("Error: " + getError() + " in expr=" + origin + " modified=" + _expr);
         }
 
         if (result == TRUE_VALUE) {
@@ -995,7 +990,7 @@ public class BoolExpressionEvaluator {
                 }
                 result[1] = BOOL_TOKEN;
 
-            }else if (typeOfOp == LT_TOKEN) {
+            } else if (typeOfOp == LT_TOKEN) {
                 if (result[0] < resultRight[0]) {
                     result[0] = 1;
                 } else {
@@ -1040,7 +1035,6 @@ public class BoolExpressionEvaluator {
     }
 
 
-
     public void computeNextToken1() {
         // If we're at the end, make it an EOLN_TOKEN.
         if (!tokens.hasMoreTokens()) {
@@ -1060,8 +1054,7 @@ public class BoolExpressionEvaluator {
             try {
                 currentValue = Integer.valueOf(s).intValue();
                 currentType = NUMBER_TOKEN;
-            }
-            catch (NumberFormatException x) {
+            } catch (NumberFormatException x) {
                 errorMessage = "Illegal format for a number.";
             }
             return;
@@ -1138,7 +1131,7 @@ public class BoolExpressionEvaluator {
 
         if (s.compareTo(")") == 0) {
             currentType = CLOSE_PAR_TOKEN;
-            nbOpen --;
+            nbOpen--;
             if (nbOpen < 0) {
                 TraceManager.addDev("Boolean expr: Found pb with a parenthesis");
                 errorMessage = "Parenthesis mismatch";
@@ -1151,7 +1144,7 @@ public class BoolExpressionEvaluator {
         if (s.compareTo("(") == 0) {
             //TraceManager.addDev("opening par token");
             currentType = OPEN_PAR_TOKEN;
-            nbOpen ++;
+            nbOpen++;
             return;
         }
 
@@ -1170,7 +1163,6 @@ public class BoolExpressionEvaluator {
     }
 
 
-
     /**
      * Match a given token and advance to the next.
      * This utility is used by our parsing routines.
@@ -1189,7 +1181,7 @@ public class BoolExpressionEvaluator {
         if (currentType != token) {
             if (token == EOLN_TOKEN)
                 errorMessage =
-                    "Unexpected text after the expression.";
+                        "Unexpected text after the expression.";
             else if (token == NUMBER_TOKEN)
                 errorMessage = "Expected an integer number.";
             else if (token == BOOL_TOKEN)
@@ -1199,7 +1191,7 @@ public class BoolExpressionEvaluator {
             else if (token == NOT_EQUAL_TOKEN)
                 errorMessage = "Expected an not equal.";
             else errorMessage =
-                     "Expected a " + ((char) token) + ".";
+                        "Expected a " + ((char) token) + ".";
             return;
         }
 
@@ -1229,14 +1221,12 @@ public class BoolExpressionEvaluator {
                 if (hasError()) return result;
                 result += parseMulexp();
                 if (hasError()) return result;
-            }
-            else if (currentType == '-') {
+            } else if (currentType == '-') {
                 match('-');
                 if (hasError()) return result;
                 result -= parseMulexp();
                 if (hasError()) return result;
-            }
-            else return result;
+            } else return result;
         }
     }
 
@@ -1309,7 +1299,7 @@ public class BoolExpressionEvaluator {
                     return FALSE_VALUE;
                 }
 
-            }else if (currentType == LT_TOKEN) {
+            } else if (currentType == LT_TOKEN) {
                 match(LT_TOKEN);
                 if (errorMessage != null) return result;
 
@@ -1393,7 +1383,7 @@ public class BoolExpressionEvaluator {
                 if (errorMessage != null) return result;
 
 
-                if ((result != 0)  && (resulttmp != 0)) {
+                if ((result != 0) && (resulttmp != 0)) {
                     return TRUE_VALUE;
                 } else {
                     return FALSE_VALUE;
@@ -1417,7 +1407,7 @@ public class BoolExpressionEvaluator {
                   errorMessage = "Expression on the right is not a boolean (result=" + intresult + ")";
                   }*/
 
-                if (((int)(resulttmp)) == 0) {
+                if (((int) (resulttmp)) == 0) {
                     return TRUE_VALUE;
                 } else {
                     return FALSE_VALUE;
@@ -1433,8 +1423,7 @@ public class BoolExpressionEvaluator {
                 if (errorMessage != null) return result;
                 result /= parseRootexp();
                 if (errorMessage != null) return result;
-            }
-            else return result;
+            } else return result;
         }
     }
 
@@ -1462,7 +1451,7 @@ public class BoolExpressionEvaluator {
 
         // <rootexp> ::= number
 
-        else if (currentType==NUMBER_TOKEN){
+        else if (currentType == NUMBER_TOKEN) {
             result = currentValue;
             if (errorMessage != null) return result;
             match(NUMBER_TOKEN);
@@ -1471,14 +1460,12 @@ public class BoolExpressionEvaluator {
 
         // <rootexp> ::= bool
 
-        else if (currentType==BOOL_TOKEN){
+        else if (currentType == BOOL_TOKEN) {
             result = currentValue;
             if (errorMessage != null) return result;
             match(BOOL_TOKEN);
             if (errorMessage != null) return result;
-        }
-
-        else if (currentType==NOT_TOKEN){
+        } else if (currentType == NOT_TOKEN) {
             match(NOT_TOKEN);
             result = parseExpression();
             if (result == TRUE_VALUE) {
@@ -1489,9 +1476,7 @@ public class BoolExpressionEvaluator {
             if (errorMessage != null) return result;
             //match(NEG_TOKEN);
             if (errorMessage != null) return result;
-        }
-
-        else {
+        } else {
             errorMessage = "Expected a value or a parenthesis.";
         }
 
@@ -1499,9 +1484,6 @@ public class BoolExpressionEvaluator {
     }
 
 
-
-
-
     public void computeNextToken() {
         while (true) {
             // If we're at the end, make it an EOLN_TOKEN.
@@ -1521,15 +1503,13 @@ public class BoolExpressionEvaluator {
                 try {
                     currentValue = Integer.valueOf(s).intValue();
                     currentType = NUMBER_TOKEN;
-                }
-                catch (NumberFormatException x) {
+                } catch (NumberFormatException x) {
                     errorMessage = "Illegal format for a number.";
                 }
                 return;
             }
 
 
-
             if (s.compareTo(TRUE) == 0) {
                 currentValue = TRUE_VALUE;
                 currentType = BOOL_TOKEN;
@@ -1599,7 +1579,7 @@ public class BoolExpressionEvaluator {
 
             if (s.compareTo(")") == 0) {
                 currentType = c1;
-                nbOpen --;
+                nbOpen--;
                 if (nbOpen < 0) {
                     TraceManager.addDev("Boolean expr: Found pb with a parenthesis");
                 }
@@ -1608,7 +1588,7 @@ public class BoolExpressionEvaluator {
 
             if (s.compareTo("(") == 0) {
                 currentType = c1;
-                nbOpen ++;
+                nbOpen++;
                 return;
             }
 
@@ -1635,7 +1615,7 @@ public class BoolExpressionEvaluator {
             errorMessage = "Not a boolean expression because it contains \"=\" operators";
             return false;
         }
-	_expr = Conversion.replaceAllString(_expr, "not", "!").trim();
+        _expr = Conversion.replaceAllString(_expr, "not", "!").trim();
         _expr = Conversion.replaceAllString(_expr, "true", "t").trim();
         _expr = Conversion.replaceAllString(_expr, "false", "f").trim();
         _expr = Conversion.replaceAllString(_expr, "||", "|").trim();
@@ -1647,17 +1627,17 @@ public class BoolExpressionEvaluator {
         _expr = Conversion.replaceAllString(_expr, ">=", ":").trim();
         _expr = Conversion.replaceAllString(_expr, "<=", ";").trim();
 
-        while((index = _expr.indexOf("not(")) != -1) {
-            indexPar = Conversion.findMatchingParenthesis(_expr, index+3, '(', ')');
-            if( indexPar == -1) {
+        while ((index = _expr.indexOf("not(")) != -1) {
+            indexPar = Conversion.findMatchingParenthesis(_expr, index + 3, '(', ')');
+            if (indexPar == -1) {
                 errorMessage = "Parenthesis not maching at index " + (index + 3) + " in expression: " + _expr;
                 return false;
             }
 
-            _expr = _expr.substring(0, index) + "(!" + _expr.substring(index+3, indexPar) + ")" + _expr.substring(indexPar, _expr.length());
+            _expr = _expr.substring(0, index) + "(!" + _expr.substring(index + 3, indexPar) + ")" + _expr.substring(indexPar, _expr.length());
         }
 
-        tokens = new java.util.StringTokenizer(_expr," \t\n\r!$=&|<>():;+-/*tf",true);
+        tokens = new java.util.StringTokenizer(_expr, " \t\n\r!$=&|<>():;+-/*tf", true);
 
         IntBoolRes resIBR = parseRootExprInt();
         if (resIBR == null) {
@@ -1665,7 +1645,7 @@ public class BoolExpressionEvaluator {
         }
 
 
-        TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree");
+        //TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree");
 
 
         Object res = resIBR.computeValue();
@@ -1674,9 +1654,9 @@ public class BoolExpressionEvaluator {
             return false;
         }
 
-        TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree");
+        //TraceManager.addDev("Tree of " + _expr + ": " + resIBR.toString() + "\nEnd of tree");
 
-        if(res instanceof Integer) {
+        if (res instanceof Integer) {
             errorMessage = "Integer expression. Was expecting a boolean expression";
         }
 
@@ -1685,7 +1665,7 @@ public class BoolExpressionEvaluator {
         }
 
         if (res instanceof Boolean) {
-            boolean result = ((Boolean)(res)).booleanValue();
+            boolean result = ((Boolean) (res)).booleanValue();
             return result;
         }
 
@@ -1705,18 +1685,17 @@ public class BoolExpressionEvaluator {
     }
 
 
-
     public IntBoolRes parseRootExprInt() {
         top = new IntBoolRes();
         IntBoolRes res = top;
 
         boolean go = true;
-        while(go) {
+        while (go) {
             String s = getNextToken();
             if (s == null) {
                 go = false;
             } else {
-                TraceManager.addDev("Working on token:" + s);
+                //TraceManager.addDev("Working on token:" + s);
                 res = parseAndMakeTree(res, s);
                 if (res == null) {
                     go = false;
@@ -1732,8 +1711,8 @@ public class BoolExpressionEvaluator {
     public IntBoolRes parseAndMakeTree(IntBoolRes current, String token) {
         ID = 0;
         IntBoolRes newElt;
-	
-	//TraceManager.addDev(current.getTop().toString());
+
+        //TraceManager.addDev(current.getTop().toString());
         //TraceManager.addDev("<><><><><><> Dealing with token:" + token + " current=" + current);
 
         char c1 = token.charAt(0);
@@ -1745,7 +1724,7 @@ public class BoolExpressionEvaluator {
 
         // Terminal symbol
         if (Character.isDigit(c1)) {
-            TraceManager.addDev("Adding number:" + token);
+            //TraceManager.addDev("Adding number:" + token);
             try {
                 newElt = current.addTerminalInt(Integer.valueOf(token).intValue());
             } catch (NumberFormatException x) {
@@ -1806,7 +1785,7 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	if (c1 == '<') {
+        if (c1 == '<') {
             newElt = current.addIntOperator(LT_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed int operator:" + token;
@@ -1815,7 +1794,7 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	if (c1 == '>') {
+        if (c1 == '>') {
             newElt = current.addIntOperator(GT_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed int operator:" + token;
@@ -1824,7 +1803,7 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	if (c1 == '>') {
+        if (c1 == '>') {
             newElt = current.addIntOperator(GT_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed int operator:" + token;
@@ -1833,7 +1812,7 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	if (c1 == ';') {
+        if (c1 == ';') {
             newElt = current.addIntOperator(LTEQ_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed int operator:" + token;
@@ -1842,7 +1821,7 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	if (c1 == ':') {
+        if (c1 == ':') {
             newElt = current.addIntOperator(GTEQ_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed int operator:" + token;
@@ -1851,7 +1830,6 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	
 
         // BOOL BINARY OP
         if (c1 == '=') {
@@ -1863,7 +1841,7 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	if (c1 == '&') {
+        if (c1 == '&') {
             newElt = current.addBinaryOperator(AND_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed bool operator:" + token;
@@ -1872,7 +1850,7 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	if (c1 == '|') {
+        if (c1 == '|') {
             newElt = current.addBinaryOperator(OR_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed bool operator:" + token;
@@ -1881,8 +1859,8 @@ public class BoolExpressionEvaluator {
             return newElt;
         }
 
-	// Bool unary op
-	if (c1 == '!') {
+        // Bool unary op
+        if (c1 == '!') {
             newElt = current.addUnaryOperator(NOT_TOKEN);
             if (newElt == null) {
                 errorMessage = "Badly placed bool unary operator:" + token;
@@ -1906,7 +1884,7 @@ public class BoolExpressionEvaluator {
             // Must find corresponding parenthesis
             // Looking for father of the correspoing parenthesis;
             IntBoolRes father = current.father;
-            while(father != null) {
+            while (father != null) {
                 if (father.op == OPEN_PAR_TOKEN) {
                     break;
                 }
@@ -1918,16 +1896,16 @@ public class BoolExpressionEvaluator {
             return father.father;
         }
 
-	if (supportUnknownTerminal) {
-	    TraceManager.addDev("Adding unknown term:" + token);
-	    newElt = current.addTerminalUnknown(token);
-	    
-	    if (newElt == null) {
-		errorMessage = "Badly placed unknown term:" + token;
-		return null;
-	    }
-	    return current;
-	}
+        if (supportUnknownTerminal) {
+            //TraceManager.addDev("Adding unknown term:" + token);
+            newElt = current.addTerminalUnknown(token);
+
+            if (newElt == null) {
+                errorMessage = "Badly placed unknown term:" + token;
+                return null;
+            }
+            return current;
+        }
 
         return null;
 
diff --git a/src/main/java/myutil/HTMLCodeGeneratorForTables.java b/src/main/java/myutil/HTMLCodeGeneratorForTables.java
index 042b551431b210caa4aa709964628b64b814b9bb..0214e1a6a93e28e9f23f3126146f81c0a08ccc31 100644
--- a/src/main/java/myutil/HTMLCodeGeneratorForTables.java
+++ b/src/main/java/myutil/HTMLCodeGeneratorForTables.java
@@ -1,26 +1,26 @@
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
+ *
  * ludovic.apvrille AT enst.fr
- * 
+ *
  * This software is a computer program whose purpose is to allow the
  * edition of TURTLE analysis, design and deployment diagrams, to
  * allow the generation of RT-LOTOS or Java code from this diagram,
  * and at last to allow the analysis of formal validation traces
  * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
  * from INRIA Rhone-Alpes.
- * 
+ *
  * This software is governed by the CeCILL  license under French law and
  * abiding by the rules of distribution of free software.  You can  use,
  * modify and/ or redistribute the software under the terms of the CeCILL
  * license as circulated by CEA, CNRS and INRIA at the following URL
  * "http://www.cecill.info".
- * 
+ *
  * As a counterpart to the access to the source code and  rights to copy,
  * modify and redistribute granted by the license, users are provided only
  * with a limited warranty  and the software's author,  the holder of the
  * economic rights,  and the successive licensors  have only  limited
  * liability.
- * 
+ *
  * In this respect, the user's attention is drawn to the risks associated
  * with loading,  using,  modifying and/or developing or reproducing the
  * software by the user in light of its specific status of free software,
@@ -31,14 +31,12 @@
  * requirements in conditions enabling the security of their systems and/or
  * data to be ensured and,  more generally, to use and operate it in the
  * same conditions as regards security.
- * 
+ *
  * The fact that you are presently reading this means that you have had
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
 
-
-
 package myutil;
 
 import ui.util.DefaultText;
@@ -56,141 +54,140 @@ import java.util.List;
  * Class HTMLCodeGeneratorForTables
  * HTML code generator for AbstractTableModel
  * Creation: 20/02/2009
- * @version 1.0 20/02/2009
+ *
  * @author Ludovic APVRILLE
+ * @version 1.0 20/02/2009
  */
-public class HTMLCodeGeneratorForTables  {
-	
-	public HTMLCodeGeneratorForTables() {
-	}
-	
-	public StringBuffer getHTMLCode(ArrayList<AbstractTableModel> atms, ArrayList<String> titles, String mainTitle) {
-		StringBuffer sb = new StringBuffer();
-		int max = Math.min(atms.size(), titles.size());
-		
-		
-		sb.append("<html>\n");
-		sb.append(getHTMLHeader(mainTitle));
-		
-		sb.append("<body>\n");
-		sb.append("<center><h1>" +  mainTitle + "</h1></center>\n");
-		
-		for (int i=0; i<max; i++) {
-			sb.append(getHTMLCode(atms.get(i), titles.get(i)));
-		}
-		
-		sb.append("</body>\n</html>");
-		
-		return sb;
-	}
-		
-		
-
-	public StringBuffer getHTMLCode(AbstractTableModel atm, String title) {
-		int i, j;
-		String s;
-		
-		StringBuffer sb = new StringBuffer("\n<BR><BR>\n<TABLE BORDER>\n");
-		sb.append("<CAPTION><B>" + title + "</B></CAPTION>\n");
-		
-		// Top part of table
-		sb.append("<TR>");
-		for(j=0; j<atm.getColumnCount(); j++) {
-			sb.append("<TH BGCOLOR=\"#C0C0C0\"> " + atm.getColumnName(j) + " </TH> "); 
-		}
-		sb.append("</TR>\n");
-		
-		// Table itself
-		for(i=0; i<atm.getRowCount(); i++) {
-			sb.append("<TR>");
-			for(j=0; j<atm.getColumnCount(); j++) {
-				s = atm.getValueAt(i, j).toString();
-				if (s.length() == 0) {
-					s = "-";
-				}
-				sb.append("<TD> " + s + " </TD> "); 
-			}
-			sb.append("</TR>\n");
-		}
-		
-		// End of table
-		sb.append("</TABLE>\n\n");
-		
-		return sb;
-
-	}
-	
-	public StringBuffer getHTMLCodeFromSorters( List<TableSorter> tss, List<String> titles, String mainTitle) {
-		StringBuffer sb = new StringBuffer();
-		int max = Math.min(tss.size(), titles.size());
-		
-		
-		sb.append("<html>\n");
-		sb.append(getHTMLHeader(mainTitle));
-		
-		sb.append("<body>\n");
-		sb.append("<center><h1>" +  mainTitle + "</h1></center>\n");
-		
-		for (int i=0; i<max; i++) {
-			sb.append(getHTMLCodeFromSorter(tss.get(i), titles.get(i)));
-		}
-		
-		sb.append("</body>\n</html>");
-		
-		return sb;
-	}
-		
-		
-
-	public StringBuffer getHTMLCodeFromSorter(TableSorter ts, String title) {
-		int i, j;
-		String s;
-		
-		StringBuffer sb = new StringBuffer("\n<BR><BR>\n<TABLE BORDER>\n");
-		sb.append("<CAPTION><B>" + title + "</B></CAPTION>\n");
-		
-		// Top part of table
-		sb.append("<TR>");
-		for(j=0; j<ts.getColumnCount(); j++) {
-			sb.append("<TH BGCOLOR=\"#C0C0C0\"> " + ts.getColumnName(j) + " </TH> "); 
-		}
-		sb.append("</TR>\n");
-		
-		// Table itself
-		for(i=0; i<ts.getRowCount(); i++) {
-			sb.append("<TR>");
-			for(j=0; j<ts.getColumnCount(); j++) {
-				s = ts.getValueAt(i, j).toString();
-				if (s.length() == 0) {
-					s = "-";
-				}
-				sb.append("<TD> " + s + " </TD> "); 
-			}
-			sb.append("</TR>\n");
-		}
-		
-		// End of table
-		sb.append("</TABLE>\n\n");
-		
-		return sb;
-
-	}
-	
-	public String getHTMLHeader(String mainTitle) {
-		GregorianCalendar calendar = (GregorianCalendar)GregorianCalendar.getInstance();
-		Date date = calendar.getTime();
-		SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm");
-		String formattedDate = formatter.format(date);
-		
-		String tmpdoc="";
-		tmpdoc += "<!----- Automatically generated by TTool version ";
-		tmpdoc += DefaultText.getVersion();
-		tmpdoc += " generation date: " + formattedDate;
-		tmpdoc += "---->\n";
-		tmpdoc += "\n<head>\n<title>";
-		tmpdoc += mainTitle;
-		tmpdoc += "</title>\n</head>\n";
-		return tmpdoc;
-	}
+public class HTMLCodeGeneratorForTables {
+
+    public HTMLCodeGeneratorForTables() {
+    }
+
+    public StringBuffer getHTMLCode(ArrayList<AbstractTableModel> atms, ArrayList<String> titles, String mainTitle) {
+        StringBuffer sb = new StringBuffer();
+        int max = Math.min(atms.size(), titles.size());
+
+
+        sb.append("<html>\n");
+        sb.append(getHTMLHeader(mainTitle));
+
+        sb.append("<body>\n");
+        sb.append("<center><h1>" + mainTitle + "</h1></center>\n");
+
+        for (int i = 0; i < max; i++) {
+            sb.append(getHTMLCode(atms.get(i), titles.get(i)));
+        }
+
+        sb.append("</body>\n</html>");
+
+        return sb;
+    }
+
+
+    public StringBuffer getHTMLCode(AbstractTableModel atm, String title) {
+        int i, j;
+        String s;
+
+        StringBuffer sb = new StringBuffer("\n<BR><BR>\n<TABLE BORDER>\n");
+        sb.append("<CAPTION><B>" + title + "</B></CAPTION>\n");
+
+        // Top part of table
+        sb.append("<TR>");
+        for (j = 0; j < atm.getColumnCount(); j++) {
+            sb.append("<TH BGCOLOR=\"#C0C0C0\"> " + atm.getColumnName(j) + " </TH> ");
+        }
+        sb.append("</TR>\n");
+
+        // Table itself
+        for (i = 0; i < atm.getRowCount(); i++) {
+            sb.append("<TR>");
+            for (j = 0; j < atm.getColumnCount(); j++) {
+                s = atm.getValueAt(i, j).toString();
+                if (s.length() == 0) {
+                    s = "-";
+                }
+                sb.append("<TD> " + s + " </TD> ");
+            }
+            sb.append("</TR>\n");
+        }
+
+        // End of table
+        sb.append("</TABLE>\n\n");
+
+        return sb;
+
+    }
+
+    public StringBuffer getHTMLCodeFromSorters(List<TableSorter> tss, List<String> titles, String mainTitle) {
+        StringBuffer sb = new StringBuffer();
+        int max = Math.min(tss.size(), titles.size());
+
+
+        sb.append("<html>\n");
+        sb.append(getHTMLHeader(mainTitle));
+
+        sb.append("<body>\n");
+        sb.append("<center><h1>" + mainTitle + "</h1></center>\n");
+
+        for (int i = 0; i < max; i++) {
+            sb.append(getHTMLCodeFromSorter(tss.get(i), titles.get(i)));
+        }
+
+        sb.append("</body>\n</html>");
+
+        return sb;
+    }
+
+
+    public StringBuffer getHTMLCodeFromSorter(TableSorter ts, String title) {
+        int i, j;
+        String s;
+
+        StringBuffer sb = new StringBuffer("\n<BR><BR>\n<TABLE BORDER>\n");
+        sb.append("<CAPTION><B>" + title + "</B></CAPTION>\n");
+
+        // Top part of table
+        sb.append("<TR>");
+        for (j = 0; j < ts.getColumnCount(); j++) {
+            sb.append("<TH BGCOLOR=\"#C0C0C0\"> " + ts.getColumnName(j) + " </TH> ");
+        }
+        sb.append("</TR>\n");
+
+        // Table itself
+        for (i = 0; i < ts.getRowCount(); i++) {
+            sb.append("<TR>");
+            for (j = 0; j < ts.getColumnCount(); j++) {
+                s = ts.getValueAt(i, j).toString();
+                if (s.length() == 0) {
+                    s = "-";
+                }
+                sb.append("<TD> " + s + " </TD> ");
+            }
+            sb.append("</TR>\n");
+        }
+
+        // End of table
+        sb.append("</TABLE>\n\n");
+
+        return sb;
+
+    }
+
+    public String getHTMLHeader(String mainTitle) {
+        GregorianCalendar calendar = (GregorianCalendar) GregorianCalendar.getInstance();
+        Date date = calendar.getTime();
+        SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy HH:mm");
+        String formattedDate = formatter.format(date);
+
+        String tmpdoc = "";
+        tmpdoc += "<!----- Automatically generated by TTool version ";
+        tmpdoc += DefaultText.getVersion();
+        tmpdoc += " generation date: " + formattedDate;
+        tmpdoc += "---->\n";
+        tmpdoc += "\n<head>\n<title>";
+        tmpdoc += mainTitle;
+        tmpdoc += "</title>\n</head>\n";
+        return tmpdoc;
+    }
 
 }
\ No newline at end of file
diff --git a/src/main/java/proverifspec/ProVerifOutputAnalyzer.java b/src/main/java/proverifspec/ProVerifOutputAnalyzer.java
index aa392822f91be29e2125df94a54457c0701e465d..cbdda1594ad0b1831fc3f34333b3ff9feef064b5 100644
--- a/src/main/java/proverifspec/ProVerifOutputAnalyzer.java
+++ b/src/main/java/proverifspec/ProVerifOutputAnalyzer.java
@@ -166,6 +166,8 @@ public class ProVerifOutputAnalyzer {
                 {
                     // Remove 'RESULT ' at the begining
                     str = str.substring(7);
+                    
+                    
                     ProVerifQueryResult result = new ProVerifQueryResult(true, true);
 
                     // This concerns an enteringState event
@@ -246,7 +248,9 @@ public class ProVerifOutputAnalyzer {
                             {
                                 if (pragma instanceof AvatarPragmaSecret)
                                 {
+
                                     String trueName = this.avatar2proverif.getTrueName(((AvatarPragmaSecret) pragma).getArg());
+                                    
                                     if (trueName != null && trueName.equals(attributeName))
                                     {
                                         this.results.put(pragma, result);
diff --git a/src/main/java/syscamstranslator/SysCAMSTBlockTDF.java b/src/main/java/syscamstranslator/SysCAMSTBlockTDF.java
index 53e0c88fb1893b85b7472598e4164fe401a23a29..02f0d8de1dc679a3d25e8a3472daf74d0ef0cb85 100644
--- a/src/main/java/syscamstranslator/SysCAMSTBlockTDF.java
+++ b/src/main/java/syscamstranslator/SysCAMSTBlockTDF.java
@@ -40,6 +40,8 @@ package syscamstranslator;
 
 import java.util.LinkedList;
 
+import javax.swing.DefaultListModel;
+
 /**
  * Class SysCAMSTBlockTDF
  * Parameters of a SystemC-AMS block TDF
@@ -53,16 +55,24 @@ public class SysCAMSTBlockTDF extends SysCAMSTComponent {
 	private String name;
 	private int period;
 	private String processCode;
+	private DefaultListModel<String> listStruct;
+	private String nameTemplate;
+	private String typeTemplate;
+	private DefaultListModel<String> listTypedef;
 	
 	private SysCAMSTCluster cluster;
 	
 	private LinkedList<SysCAMSTPortTDF> portTDF;
 	private LinkedList<SysCAMSTPortConverter> portConverter;
 	
-	public SysCAMSTBlockTDF(String _name, int _period, String _processCode, SysCAMSTCluster _cluster) {
+	public SysCAMSTBlockTDF(String _name, int _period, String _processCode, DefaultListModel<String> _listStruct, String _nameTemplate, String _typeTemplate, DefaultListModel<String> _listTypedef, SysCAMSTCluster _cluster) {
 		name = _name;
 		period = _period;
 		processCode = _processCode;
+		listStruct = _listStruct;
+		nameTemplate = _nameTemplate;
+		typeTemplate = _typeTemplate;
+		listTypedef = _listTypedef;
 		cluster = _cluster;
 		portTDF = new LinkedList<SysCAMSTPortTDF>();
 		portConverter = new LinkedList<SysCAMSTPortConverter>();
@@ -80,6 +90,22 @@ public class SysCAMSTBlockTDF extends SysCAMSTComponent {
 		return name;
 	}
 
+	public DefaultListModel<String> getListStruct() {
+		return listStruct;
+	}
+
+	public String getNameTemplate() {
+		return nameTemplate;
+	}
+
+	public String getTypeTemplate() {
+		return typeTemplate;
+	}
+
+	public DefaultListModel<String> getListTypedef() {
+		return listTypedef;
+	}
+
 	public SysCAMSTCluster getCluster() {
 		return cluster;
 	}
@@ -99,4 +125,4 @@ public class SysCAMSTBlockTDF extends SysCAMSTComponent {
 	public void addPortConverter(SysCAMSTPortConverter converter){
 		portConverter.add(converter);
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/syscamstranslator/toSysCAMS/PrimitiveCode.java b/src/main/java/syscamstranslator/toSysCAMS/PrimitiveCode.java
index a40d8827d834a1596a78d52c1cf7b2c7c87b1620..87fd951cacaec3f4c1cbeda574e5b56dd8e40075 100644
--- a/src/main/java/syscamstranslator/toSysCAMS/PrimitiveCode.java
+++ b/src/main/java/syscamstranslator/toSysCAMS/PrimitiveCode.java
@@ -55,7 +55,7 @@ import syscamstranslator.*;
  * Creation: 14/05/2018
  * @version 1.0 14/05/2018
  * @author Irina Kit Yan LEE
-*/
+ */
 
 public class PrimitiveCode {
 	static private String corpsPrimitive;
@@ -70,11 +70,72 @@ public class PrimitiveCode {
 			LinkedList<SysCAMSTPortConverter> convports = tdf.getPortConverter();
 			int cpt = 0;
 			int cpt2 = 0;
+
+			if ((!tdf.getTypeTemplate().equals("")) || (!tdf.getNameTemplate().equals("")))  {
+				corpsPrimitive = "template<" + tdf.getTypeTemplate() + " " + tdf.getNameTemplate() + ">" + CR;
+			}
+			//corpsPrimitive = "SCA_TDF_MODULE(" + tdf.getName() + ") {" + CR2;
+			corpsPrimitive = corpsPrimitive + "class " + tdf.getName() + " : public sca_tdf::sca_module {" + CR2 + "public:" + CR;
+
+			if (!tdf.getListTypedef().isEmpty()) {
+				for (int i = 0; i < tdf.getListTypedef().getSize(); i++) {
+					String select = tdf.getListTypedef().get(i);
+					String[] split = select.split(" : ");
+					corpsPrimitive = corpsPrimitive + "\ttypedef " + split[1] + "<" + tdf.getNameTemplate() + "> " + split[0] + ";" + CR;
+					if (i == tdf.getListTypedef().getSize()-1) {
+						corpsPrimitive = corpsPrimitive + CR;
+					}
+				}
+			}
 			
-			corpsPrimitive = "SCA_TDF_MODULE(" + tdf.getName() + ") {" + CR2;
-			
+			if (tdf.getListStruct().getSize() != 0) {
+				corpsPrimitive = corpsPrimitive + "\tstruct parameters {" + CR;
+
+				String identifier, value, type;
+				for (int i = 0; i < tdf.getListStruct().size(); i++) {
+					String select = tdf.getListStruct().get(i);
+					String[] splita = select.split(" = ");
+					identifier = splita[0];
+					String[] splitb = splita[1].split(" : ");
+					value = splitb[0];
+					String[] splitc = splitb[1].split(" ");
+					if (splitc[0].equals("const")) {
+						type = splitc[1];
+					} else {
+						type = splitc[0];
+					}
+					corpsPrimitive = corpsPrimitive + "\t\t" + type + " " + identifier + ";" + CR;
+				}
+
+				corpsPrimitive = corpsPrimitive + "\t\tparameters()" + CR;
+
+				for (int i = 0; i < tdf.getListStruct().size(); i++) {
+					String select = tdf.getListStruct().get(i);
+					String[] splita = select.split(" = ");
+					identifier = splita[0];
+					String[] splitb = splita[1].split(" : ");
+					value = splitb[0];
+					String[] splitc = splitb[1].split(" ");
+					if (splitc[0].equals("const")) {
+						type = splitc[1];
+					} else {
+						type = splitc[0];
+					}
+					if (i == 0) {
+						corpsPrimitive = corpsPrimitive + "\t\t: " + identifier + "(" + value + ")" + CR;
+					} 
+					if ((i > 0) && (i < tdf.getListStruct().getSize()-1)) {
+						corpsPrimitive = corpsPrimitive + "\t\t, " + identifier + "(" + value + ")" + CR;
+					} 
+					if (i == tdf.getListStruct().getSize()-1) {
+						corpsPrimitive = corpsPrimitive + "\t\t, " + identifier + "(" + value + ")" + CR + "\t\t{}" + CR;
+					}
+				}
+				corpsPrimitive = corpsPrimitive + "\t};" + CR;
+			}
+
 			if (!tdfports.isEmpty()) {
-				corpsPrimitive = corpsPrimitive + "\t// TDF port declarations" + CR;
+				corpsPrimitive = corpsPrimitive + CR;
 				for (SysCAMSTPortTDF t : tdfports) {
 					if (t.getOrigin() == 0) {
 						corpsPrimitive = corpsPrimitive + "\tsca_tdf::sca_in<" + t.getTDFType() + "> " + t.getName() + ";" + CR;
@@ -84,7 +145,7 @@ public class PrimitiveCode {
 				}
 			}
 			if (!convports.isEmpty()) {
-				corpsPrimitive = corpsPrimitive + "\t// Converter port declarations" + CR;
+				corpsPrimitive = corpsPrimitive + CR;
 				for (SysCAMSTPortConverter conv : convports) {
 					if (conv.getOrigin() == 0) {
 						corpsPrimitive = corpsPrimitive + "\tsca_tdf::sca_de::sca_in<" + conv.getConvType() + "> " + conv.getName() + ";" + CR;
@@ -93,10 +154,17 @@ public class PrimitiveCode {
 					}
 				}
 			}
-			
-			corpsPrimitive = corpsPrimitive + CR + "\t// Constructor" + CR + "\tSCA_CTOR(" + tdf.getName() + ")" + CR;
-		
-			if (!tdfports.isEmpty() || !convports.isEmpty()) {
+
+			//corpsPrimitive = corpsPrimitive + CR + "\t// Constructor" + CR + "\tSCA_CTOR(" + tdf.getName() + ")" + CR;
+			corpsPrimitive = corpsPrimitive + CR + "\texplicit " + tdf.getName() + "(sc_core::sc_module_name nm";
+
+			if (tdf.getListStruct().getSize() != 0) {
+				corpsPrimitive = corpsPrimitive + ", const parameters& p = parameters())" + CR;
+			} else {
+				corpsPrimitive = corpsPrimitive + ")" + CR;
+			}
+
+			if (!tdfports.isEmpty() || !convports.isEmpty() || !tdf.getListStruct().isEmpty()) {
 				corpsPrimitive = corpsPrimitive + "\t: ";
 				if (!tdfports.isEmpty()) {
 					for (int i = 0; i < tdfports.size(); i++) {
@@ -128,10 +196,28 @@ public class PrimitiveCode {
 						}
 					}
 				}
-				corpsPrimitive = corpsPrimitive + "\t{}" + CR2;
+				String identifier;
+				if (!tdf.getListStruct().isEmpty()) {
+					for (int i = 0; i < tdf.getListStruct().size(); i++) {
+						String select = tdf.getListStruct().get(i);
+						String[] splita = select.split(" = ");
+						identifier = splita[0];
+						if (tdf.getListStruct().getSize() > 1) {
+							if (cpt == 0) {
+								corpsPrimitive = corpsPrimitive + identifier + "(p." + identifier + ")" + CR;
+								cpt++;
+							} else {
+								corpsPrimitive = corpsPrimitive + "\t, " + identifier + "(p." + identifier + ")" + CR;
+							}
+						} else {
+							corpsPrimitive = corpsPrimitive + identifier + "(p." + identifier + ")" + CR;
+							cpt++;
+						}
+					}
+				}
+				corpsPrimitive = corpsPrimitive + "\t{}" + CR2 + "protected:" + CR;
 			}
-			
-			// Block period 
+
 			if (tdf.getPeriod() != -1) {
 				corpsPrimitive = corpsPrimitive + "\tvoid set_attributes() {" + CR + "\t\t" + "set_timestep(" + tdf.getPeriod() + ", sc_core::SC_MS);" + CR;
 				cpt2++;
@@ -216,51 +302,75 @@ public class PrimitiveCode {
 					} 
 				}
 			}
-			
-			// Block processCode
+
 			if (cpt2 > 0) {
 				corpsPrimitive = corpsPrimitive + "\t}" + CR2;
 			}
-					
+
 			StringBuffer pcbuf = new StringBuffer(tdf.getProcessCode());
 			StringBuffer buffer = new StringBuffer("");
 			int tab = 0;
 			int begin = 0;
-			
-	        for(int pos = 0; pos != tdf.getProcessCode().length(); pos++) {
-	        	char c = pcbuf.charAt(pos);
-	            switch(c) {
-	                case '\t':  
-	                	begin = 1;
-	                	tab++;
-	                	break;
-	                default:  
-	                	if (begin == 1) {
-	                		int i = tab;
-	                		while (i >= 0) {
-	                			buffer.append("\t"); 
-	                			i--;
-	                		}
-	                		buffer.append(pcbuf.charAt(pos)); 	
-	                		begin = 0;
-	                		tab = 0;
-	                	} else {
-	                		if (c == '}') {
-	                			buffer.append("\t"); 
-	                		}
-	                		buffer.append(pcbuf.charAt(pos)); 	
-	                	}
-	                	break;
-	            }
-	        }
-			
-	        String pc = buffer.toString();
-	        
-			corpsPrimitive = corpsPrimitive + "\t" + pc + CR + "};" + CR2 + "#endif"
-					+ " // " + tdf.getName().toUpperCase() + "_H";
+
+			for(int pos = 0; pos != tdf.getProcessCode().length(); pos++) {
+				char c = pcbuf.charAt(pos);
+				switch(c) {
+				case '\t':  
+					begin = 1;
+					tab++;
+					break;
+				default:  
+					if (begin == 1) {
+						int i = tab;
+						while (i >= 0) {
+							buffer.append("\t"); 
+							i--;
+						}
+						buffer.append(pcbuf.charAt(pos)); 	
+						begin = 0;
+						tab = 0;
+					} else {
+						if (c == '}') {
+							buffer.append("\t"); 
+						}
+						buffer.append(pcbuf.charAt(pos)); 	
+					}
+					break;
+				}
+			}
+
+			String pc = buffer.toString();
+
+			corpsPrimitive = corpsPrimitive + "\t" + pc + CR;
+
+			if (tdf.getListStruct().getSize() != 0) {
+				corpsPrimitive = corpsPrimitive + "private:" + CR;
+
+				String identifier, type, constant;
+				for (int i = 0; i < tdf.getListStruct().size(); i++) {
+					String select = tdf.getListStruct().get(i);
+					String[] splita = select.split(" = ");
+					identifier = splita[0];
+					String[] splitb = splita[1].split(" : ");
+					String[] splitc = splitb[1].split(" ");
+					if (splitc[0].equals("const")) {
+						constant = splitc[0];
+						type = splitc[1];
+					} else {
+						constant = "";
+						type = splitc[0];
+					}
+					if (constant.equals("")) {
+						corpsPrimitive = corpsPrimitive + "\t" + type + " " + identifier + ";" + CR;
+					} else {
+						corpsPrimitive = corpsPrimitive + "\t" + constant + " " + type + " " + identifier + ";" + CR;
+					}
+				}
+			}
+			corpsPrimitive = corpsPrimitive + "};" + CR2 + "#endif" + " // " + tdf.getName().toUpperCase() + "_H";
 		} else {
 			corpsPrimitive = "";
 		}
 		return corpsPrimitive;
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/tmltranslator/SecurityPattern.java b/src/main/java/tmltranslator/SecurityPattern.java
index a9018cb0e269083159e8e7a49346f42826b48c4a..e63e64d8614d690b8ceecfefd0346e49f9d17614 100644
--- a/src/main/java/tmltranslator/SecurityPattern.java
+++ b/src/main/java/tmltranslator/SecurityPattern.java
@@ -44,8 +44,8 @@ import avatartranslator.AvatarState;
 
 public class SecurityPattern {
 
-    public String name;
-    public String type;
+    public String name="";
+    public String type="";
     public int overhead=0;
     public int size=0;
     public int encTime=0;
@@ -88,8 +88,12 @@ public class SecurityPattern {
 	s += "\" encTime=\""  + encTime;
 	s += "\" decTime=\""  + decTime;
 	s += "\" originTask=\""  + originTask;
-	s += "\" state1=\""  + state1.getName();
-	s += "\" state2=\""  + state2.getName();
+	if (state1!=null){
+		s += "\" state1=\""  + state1.getName();
+	}
+	if (state2!=null){
+		s += "\" state2=\""  + state2.getName();
+	}
 	s += "\" nonce=\""  + nonce;
 	s += "\" formula=\""  + formula;
 	s += "\" key=\""  + key;
diff --git a/src/main/java/tmltranslator/TMLActivityElementChannel.java b/src/main/java/tmltranslator/TMLActivityElementChannel.java
index e7a93f9bbc2f3d37e831bf91a619d6efbd48a1db..34dd5221b5a0bbcb73a76e3dd3f14e7dd703503b 100755
--- a/src/main/java/tmltranslator/TMLActivityElementChannel.java
+++ b/src/main/java/tmltranslator/TMLActivityElementChannel.java
@@ -54,6 +54,7 @@ public class TMLActivityElementChannel extends TMLActivityElement {
     protected ArrayList<TMLChannel> channels;
     protected String nbOfSamples;
 	private boolean isAttacker;
+	protected boolean isEncForm; //If the Cryptographic 
 
     public TMLActivityElementChannel(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -88,7 +89,14 @@ public class TMLActivityElementChannel extends TMLActivityElement {
     public String getNbOfSamples() {
         return nbOfSamples;
     }
-
+    
+    public boolean getEncForm(){
+    	return isEncForm;
+    }
+	public void setEncForm(boolean form){
+		isEncForm = form;
+	}
+	
     public void replaceChannelWith(TMLChannel oldChan, TMLChannel newChan) {
         if (channels.contains(oldChan)) {
             channels.remove(oldChan);
diff --git a/src/main/java/tmltranslator/TMLModeling.java b/src/main/java/tmltranslator/TMLModeling.java
index 89a1779d5d8200a704de478ae8ade221c37bb673..31b7ead148bda8a7ed2ee2405933d96172a3b3cd 100755
--- a/src/main/java/tmltranslator/TMLModeling.java
+++ b/src/main/java/tmltranslator/TMLModeling.java
@@ -44,6 +44,7 @@ package tmltranslator;
 import avatartranslator.AvatarAttribute;
 import avatartranslator.AvatarPragmaAuthenticity;
 import avatartranslator.AvatarPragmaSecret;
+import avatartranslator.AvatarPragmaReachability;
 import myutil.Conversion;
 import myutil.TraceManager;
 import proverifspec.ProVerifOutputAnalyzer;
@@ -760,6 +761,7 @@ public class TMLModeling<E> {
         Map<AvatarPragmaSecret, ProVerifQueryResult> confResults = pvoa.getConfidentialityResults();
 
         for (AvatarPragmaSecret pragma: confResults.keySet()) {
+        //	System.out.println("pragma "  +pragma);
             ProVerifQueryResult result = confResults.get(pragma);
             if (!result.isProved())
                 continue;
@@ -768,9 +770,40 @@ public class TMLModeling<E> {
             AvatarAttribute attr = pragma.getArg();
 
             TMLChannel channel = getChannelByShortName(attr.getName().replaceAll("_chData",""));
+            boolean invalidate=false;
+            //If an attribute is confidential because it has never been sent on that channel, do not backtrace that result since it is misleading
             if (channel!=null){
+            	//Mark the result only if the writechannel operator is reachable
+            	Map<AvatarPragmaReachability, ProVerifQueryResult> reachResults = pvoa.getReachabilityResults();
+            	if (reachResults.size()>0){
+	            	for (AvatarPragmaReachability reachPragma: reachResults.keySet()){
+    	        		if (reachPragma.getState().getName().equals("aftersignalstate_reachannel_"+channel.getName())){
+    	        			if (!reachResults.get(reachPragma).isSatisfied()){
+    	        				invalidate=true;
+    	        			}	
+            			}
+            		}
+            	}
+            	//Next check if there exists a writechannel operator that sends unencrypted data
+            	boolean found=false;
+            	for (TMLTask task: getTasks()){
+            		TMLActivity act = task.getActivityDiagram();
+            		for (TMLActivityElement elem: act.getElements()){
+            			if (elem instanceof TMLWriteChannel){
+            				TMLWriteChannel wr = (TMLWriteChannel) elem;
+            				if(wr.getChannel(0).getName().equals(channel.getName())){
+            					if (wr.securityPattern==null){
+            						found=true;
+            					}
+            				}
+            			}
+            		}
+            	}
+            	if (!found){
+            		invalidate=true;
+            	}
                 for (TMLCPrimitivePort port:channel.ports){
-                    if (port.checkConf){
+                    if (port.checkConf && !invalidate){
                         port.checkConfStatus = r;
                         port.mappingName= mappingName;
                     }
@@ -796,6 +829,7 @@ public class TMLModeling<E> {
                     ev.port2.mappingName=mappingName;
                 }
             }
+            
             List<String> channels=secChannelMap.get(attr.getName());
             if (channels != null) {
                 for (String channelName: channels) {
@@ -810,7 +844,7 @@ public class TMLModeling<E> {
                     }
                 }
             }
-            for (TMLTask t:getTasks()){
+            /*for (TMLTask t:getTasks()){
                 if (t.getReferenceObject()==null){
                     continue;
                 }
@@ -821,7 +855,7 @@ public class TMLModeling<E> {
                         if (a.getId().equals(attr.getName()))
                             a.setConfidentialityVerification(result.isSatisfied() ? TAttribute.CONFIDENTIALITY_OK : TAttribute.CONFIDENTIALITY_KO);
                 }
-            }
+            }*/
         }
     }
 	public TGComponent getTGComponent(){
@@ -978,7 +1012,7 @@ public class TMLModeling<E> {
                         }
                     }
                     signalName = s.toString().split("__decrypt")[0];
-                    TraceManager.addDev("signalName " +signalName);
+
                     /*for (TMLTask t: getTasks()){
                       if (signalName.contains(t.getName())){
                       signalName = signalName.replace(t.getName()+"__","");
diff --git a/src/main/java/tmltranslator/TMLTextSpecification.java b/src/main/java/tmltranslator/TMLTextSpecification.java
index 61d13dea36d765567c8c9a609a2b566dd1c26973..b3fcddaba73fd4e0277b54d1e2770ffcade42e58 100755
--- a/src/main/java/tmltranslator/TMLTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLTextSpecification.java
@@ -47,11 +47,17 @@ import myutil.FileException;
 import myutil.FileUtils;
 import myutil.TraceManager;
 
+import tmltranslator.SecurityPattern;
+
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+
 
 import common.SpecConfigTTool;
 
@@ -68,6 +74,15 @@ public class TMLTextSpecification<E> {
     public final static String CR2 = "\n\n";
     public final static String SC = ";";
     public final static String C = ",";
+    
+    
+	public final static String AENCRYPT="AE";
+	public final static String SENCRYPT="SE";
+	public final static String MAC="MAC";
+	public final static String NONCE="NONCE";
+	public final static String HASH="HASH";
+	public final static String ADV="ADV";
+	
 
     private String spec;
     private String title;
@@ -85,6 +100,8 @@ public class TMLTextSpecification<E> {
     private TMLActivityElement tmlae;
     private ArrayList<TMLParserSaveElt> parses;
 
+    private Map<String, SecurityPattern> securityPatternMap = new HashMap<String, SecurityPattern>();
+
     private static String keywords[] = {"BOOL", "INT", "NAT", "CHANNEL", "EVENT", "REQUEST", "LOSSYCHANNEL", "LOSSYEVENT", "LOSSYREQUEST", "BRBW", "NBRNBW",
                                         "BRNBW", "INF", "NIB", "NINB", "TASK", "ENDTASK", "IF", "ELSE", "ORIF", "ENDIF", "FOR", "ENDFOR",
                                         "SELECTEVT", "CASE", "ENDSELECTEVT", "ENDCASE", "WRITE", "READ", "WAIT", "NOTIFY", "NOTIFIED", "RAND", "CASERAND", "ENDRAND", "ENDCASERAND", "EXECI", "EXECC", "DELAY", "RANDOM",
@@ -96,6 +113,10 @@ public class TMLTextSpecification<E> {
     private String beginArray[] = {"TASK", "FOR", "IF", "ELSE", "ORIF", "SELECTEVT", "CASE", "RAND", "CASERAND", "RANDOMSEQ", "SEQ"};
     private String endArray[] = {"ENDTASK", "ENDFOR", "ENDIF", "ELSE", "ORIF", "ENDSELECTEVT", "ENDCASE", "ENDRAND", "ENDCASERAND", "ENDRANDOMSEQ", "ENDSEQ"};
 
+// New argument to be added on EXECC for security: CC_name Type Encrypt_complexity Decrypt_Complexity Overhead Size Nonce Key
+// New argument on Read/Write Channels: CC_name
+
+
     public TMLTextSpecification(String _title) {
         title = _title;
     }
@@ -185,16 +206,23 @@ public class TMLTextSpecification<E> {
     public String toString() {
         return spec;
     }
+    
+
 
     public String toTextFormat(TMLModeling<E> tmlm) {
 	tmlm.removeForksAndJoins();
         tmlm.sortByName();
         spec = makeDeclarations(tmlm);
+        //Set up Cryptographic Configurations
+        
         spec += makeTasks(tmlm);
         indent();
         return spec;
     }
 
+
+
+
     public String makeDeclarations(TMLModeling<E> tmlm) {
         int i;
         String sb = "";
@@ -344,7 +372,31 @@ public class TMLTextSpecification<E> {
             return code + makeBehavior(task, elt.getNextElement(0));
 
         } else if (elt instanceof TMLExecC) {
-            code = "EXECC" + SP + modifyString(((TMLExecC)elt).getAction()) + CR;
+        	if (elt.securityPattern==null){
+	            code = "EXECC" + SP + modifyString(((TMLExecC)elt).getAction()) + CR;
+	        }
+	        else {
+	        	String type="";
+	        	if (elt.securityPattern.type.equals("Asymmetric Encryption")){
+	        		type = AENCRYPT;
+	        	}
+	        	else if (elt.securityPattern.type.equals("Symmetric Encryption")){
+	        		type = SENCRYPT;
+	        	}
+	        	else if (elt.securityPattern.type.equals("MAC")){
+	        		type = MAC;
+	        	}
+	        	else if (elt.securityPattern.type.equals("Nonce")){
+	        		type = NONCE;
+	        	}
+	        	else if (elt.securityPattern.type.equals("Hash")){
+	        		type = HASH;
+	        	}	        		        	
+	        	else {
+	        		type = ADV;
+	        	}	        	
+	        	code = "EXECC" + SP +  modifyString(((TMLExecC)elt).getAction()) + SP + elt.securityPattern.name + SP + type + SP + elt.securityPattern.encTime + SP + elt.securityPattern.decTime + SP + elt.securityPattern.overhead + SP + elt.securityPattern.size + SP + elt.securityPattern.nonce + SP + elt.securityPattern.key+   CR;
+	        }
             return code + makeBehavior(task, elt.getNextElement(0));
 
         } else if (elt instanceof TMLExecCInterval) {
@@ -387,12 +439,23 @@ public class TMLTextSpecification<E> {
             for(int k=0; k<tmlch.getNbOfChannels(); k++) {
                 code = code + tmlch.getChannel(k).getName() + SP;
             }
-            code = code + modifyString(tmlch.getNbOfSamples()) + CR;
+            code = code + modifyString(tmlch.getNbOfSamples());
+            if (elt.securityPattern!=null){
+            	code = code + SP + elt.securityPattern.name + CR;
+            }
+            else {
+            	code = code + CR;
+            }
             return code + makeBehavior(task, elt.getNextElement(0));
 
         } else if (elt instanceof TMLReadChannel) {
             tmlch = (TMLActivityElementChannel)elt;
-            code = "READ " + tmlch.getChannel(0).getName() + SP + modifyString(tmlch.getNbOfSamples()) + CR;
+            if (elt.securityPattern==null){      
+            	code = "READ " + tmlch.getChannel(0).getName() + SP + modifyString(tmlch.getNbOfSamples()) + CR;
+            }
+            else {
+            	code = "READ " + tmlch.getChannel(0).getName() + SP + modifyString(tmlch.getNbOfSamples()) + SP + elt.securityPattern.name + CR;     	
+            }
             return code + makeBehavior(task, elt.getNextElement(0));
 
         } else if (elt instanceof TMLSendEvent) {
@@ -595,6 +658,35 @@ public class TMLTextSpecification<E> {
 
         parses = new ArrayList<TMLParserSaveElt>();
 
+		//Start by reading once and creating all Cryptographic Configuration
+		 try {
+            while((s = br.readLine()) != null) {
+                if (s != null) {
+                    s = s.trim();
+                    //TraceManager.addDev("s=" + s);
+                    s = removeUndesiredWhiteSpaces(s, lineNb);
+                    s1 = Conversion.replaceAllString(s, "\t", " ");
+                    s1 = Conversion.replaceRecursiveAllString(s1, "  ", " ");
+                    //TraceManager.addDev("s1=" + s1);
+                    if (s1 != null) {
+                        split = s1.split("\\s");
+                        if (split.length > 0) {
+                            findSec(split);
+                            
+                        }
+                    }
+
+                    lineNb++;
+                }
+            }
+		
+		} catch (Exception e){
+            TraceManager.addError("Exception when reading specification: " + e.getMessage());
+            addError(0, lineNb, 0, "Exception when reading specification");
+		}
+		
+		lineNb=0;
+		br = new BufferedReader(new StringReader(spec));
         try {
             while((s = br.readLine()) != null) {
                 if (s != null) {
@@ -622,6 +714,38 @@ public class TMLTextSpecification<E> {
         }
     }
 
+	public void findSec(String[] _split){
+		if (isInstruction(_split[0],"EXECC")){
+			if (_split.length>4){
+				String ccName = _split[3];
+				String type = _split[4];
+				String stringType="";
+				if (type.equals(AENCRYPT)){
+					stringType="Symmetric Encryption";		
+				}
+				else if (type.equals(SENCRYPT)){
+					stringType="Symmetric Encryption";
+				}
+				else if (type.equals(HASH)){
+					stringType = "Hash";
+				}
+				else if (type.equals(MAC)){
+					stringType = "MAC";
+				}
+				else if (type.equals(NONCE)){
+					stringType = "Nonce";
+				}
+				else if (type.equals(ADV)){
+					stringType = "Advanced";
+				}
+				if (!stringType.equals("")){
+					SecurityPattern sp = new SecurityPattern(ccName, stringType, _split[6], _split[7], _split[4], _split[5], _split[8], "", _split[9]);
+					securityPatternMap.put(ccName, sp);
+				}
+			}
+		}
+	}
+
     public void addError(int _type, int _lineNb, int _charNb, String _msg) {
         TMLTXTError error = new TMLTXTError(_type);
         error.lineNb = _lineNb;
@@ -1213,8 +1337,8 @@ public class TMLTextSpecification<E> {
             inTaskDec = false;
          //   inTaskBehavior = true;
 
-            if (_split.length != 3) {
-                error = "A READ operation must be declared with exactly 3 parameters, and not " + (_split.length - 1) ;
+            if (_split.length != 3 && _split.length!= 4) {
+                error = "A READ operation must be declared with exactly 3 or 4 parameters, and not " + (_split.length - 1) ;
                 addError(0, _lineNb, 0, error);
                 return -1;
             }
@@ -1245,6 +1369,13 @@ public class TMLTextSpecification<E> {
             tmlrch.setNbOfSamples(_split[2]);
             task.getActivityDiagram().addElement(tmlrch);
             tmlae.addNext(tmlrch);
+                        
+            if (_split.length==4){
+            	if (securityPatternMap.containsKey(_split[3])){
+            		tmlrch.securityPattern = securityPatternMap.get(_split[3]); 
+            	}
+			}		
+            
             tmlae = tmlrch;
 
         } // READ
@@ -1263,8 +1394,10 @@ public class TMLTextSpecification<E> {
             inTaskDec = false;
          //   inTaskBehavior = true;
 
-            if (_split.length < 3) {
-                error = "A WRITE operation must be declared with at most 3 parameters, and not " + (_split.length - 1) ;
+	
+			
+            if (_split.length > 5 || _split.length <2) {
+                error = "A WRITE operation must be declared with at most 4 parameters, and not " + (_split.length - 1) ;
                 addError(0, _lineNb, 0, error);
                 return -1;
             }
@@ -1275,29 +1408,56 @@ public class TMLTextSpecification<E> {
 
 	    //TraceManager.addDev("Handling write channel 1");
             TMLWriteChannel tmlwch = new TMLWriteChannel(_split[1], null);
-            for(int k=0; k<_split.length-2; k++) {
-		//TraceManager.addDev("Handling write channel 1.1");
-                ch = tmlm.getChannelByName(_split[1+k]);
-                if (ch == null ){
-                    error = "Undeclared channel: " +  _split[1+k];
-                    addError(0, _lineNb, 0, error);
-                    return -1;
-                }
-		//TraceManager.addDev("Handling write channel 1.2 for task: " + task.getName());
-                if (!(ch.hasOriginTask(task))){		    
-		    error = "WRITE operations must be done only in origin task(s). Should be in task(s): " + ch.getNameOfOriginTasks();		    
-                    addError(0, _lineNb, 0, error);
-                    return -1;
-                }
-		//TraceManager.addDev("Handling write channel 1.3");
-
-                tmlwch.addChannel(ch);
-            }
-
-	    //TraceManager.addDev("Handling write channel 2");
+            if (_split.length>3){
+            	if (securityPatternMap.containsKey(_split[_split.length-1])){
+            		tmlwch.securityPattern = securityPatternMap.get(_split[_split.length-1]); 
+            	}
+            	for(int k=0; k<_split.length-3; k++) {
+				//TraceManager.addDev("Handling write channel 1.1");
+                	ch = tmlm.getChannelByName(_split[1+k]);
+                	if (ch == null ){
+                    	error = "Undeclared channel: " +  _split[1+k];
+                   		addError(0, _lineNb, 0, error);
+                    	return -1;
+                	}
+					//TraceManager.addDev("Handling write channel 1.2 for task: " + task.getName());
+                	if (!(ch.hasOriginTask(task))){		    
+		    		error = "WRITE operations must be done only in origin task(s). Should be in task(s): " + ch.getNameOfOriginTasks();		    
+                	    addError(0, _lineNb, 0, error);
+                	    return -1;
+                	}
+					//TraceManager.addDev("Handling write channel 1.3");
+
+                	tmlwch.addChannel(ch);
+            	}
+			}		    
+            else {
+            
+            	for(int k=0; k<_split.length-2; k++) {
+				//TraceManager.addDev("Handling write channel 1.1");
+                	ch = tmlm.getChannelByName(_split[1+k]);
+                	if (ch == null ){
+                    	error = "Undeclared channel: " +  _split[1+k];
+                   		addError(0, _lineNb, 0, error);
+                    	return -1;
+                	}
+					//TraceManager.addDev("Handling write channel 1.2 for task: " + task.getName());
+                	if (!(ch.hasOriginTask(task))){		    
+		    		error = "WRITE operations must be done only in origin task(s). Should be in task(s): " + ch.getNameOfOriginTasks();		    
+                	    addError(0, _lineNb, 0, error);
+                	    return -1;
+                	}
+					//TraceManager.addDev("Handling write channel 1.3");
+
+                	tmlwch.addChannel(ch);
+            	}
+			}
+	    	//TraceManager.addDev("Handling write channel 2");
             tmlwch.setNbOfSamples(_split[2]);
             task.getActivityDiagram().addElement(tmlwch);
             tmlae.addNext(tmlwch);
+            
+
             tmlae = tmlwch;
 
         } // WRITE
@@ -2301,26 +2461,37 @@ public class TMLTextSpecification<E> {
             inTask = true;
             inTaskDec = false;
       //     inTaskBehavior = true;
-
-            if ((_split.length < 2) ||(_split.length > 4)) {
-                error = "An EXECC operation must be declared with 1 or 2 parameters, and not " + (_split.length - 1) ;
-                addError(0, _lineNb, 0, error);
-                return -1;
-            }
-
-            if (_split.length == 2) {
-                TMLExecC execc = new TMLExecC("execc", null);
-                execc.setAction(_split[1]);
-                tmlae.addNext(execc);
-                task.getActivityDiagram().addElement(execc);
-                tmlae = execc;
-            } else {
-                TMLExecCInterval execci = new TMLExecCInterval("execci", null);
-                execci.setMinDelay(_split[1]);
-                execci.setMaxDelay(_split[2]);
-                tmlae.addNext(execci);
-                task.getActivityDiagram().addElement(execci);
-                tmlae = execci;
+      		if (_split.length>4){
+ 				if (securityPatternMap.containsKey(_split[2])){
+ 					//Security operation
+ 					TMLExecC execc = new TMLExecC("execc", null);
+            	    execc.setAction(_split[1]);
+            	    execc.securityPattern = securityPatternMap.get(_split[2]);
+            	    tmlae.addNext(execc);
+            	    task.getActivityDiagram().addElement(execc);
+            	    tmlae = execc;
+ 				}
+ 			}
+			else {
+	            if ((_split.length < 2) ||(_split.length > 4)) {
+	                error = "An EXECC operation must be declared with 1, 2 parameters, and not " + (_split.length - 1) ;
+	                addError(0, _lineNb, 0, error);
+	                return -1;
+	            }
+            	if (_split.length == 2) {
+            	    TMLExecC execc = new TMLExecC("execc", null);
+            	    execc.setAction(_split[1]);
+            	    tmlae.addNext(execc);
+            	    task.getActivityDiagram().addElement(execc);
+            	    tmlae = execc;
+            	} else {
+            	    TMLExecCInterval execci = new TMLExecCInterval("execci", null);
+            	    execci.setMinDelay(_split[1]);
+            	    execci.setMaxDelay(_split[2]);
+            	    tmlae.addNext(execci);
+            	    task.getActivityDiagram().addElement(execci);
+            	    tmlae = execci;
+            	}
             }
         } // EXECC
 
diff --git a/src/main/java/tmltranslator/toavatar/TML2Avatar.java b/src/main/java/tmltranslator/toavatar/TML2Avatar.java
index 5f07b740da043ca8dae91cb23f5027c1f4b020d9..f82f2a6bdec1f7a69901ca6647025ca1500c9ef1 100644
--- a/src/main/java/tmltranslator/toavatar/TML2Avatar.java
+++ b/src/main/java/tmltranslator/toavatar/TML2Avatar.java
@@ -92,7 +92,10 @@ public class TML2Avatar {
 
     public TML2Avatar(TMLMapping<?> tmlmap, boolean modelcheck, boolean sec) {
         this.tmlmap = tmlmap;
+
         this.tmlmodel = tmlmap.getTMLModeling();
+        
+     
         allStates = new ArrayList<String>();
         attrsToCheck = new ArrayList<String>();
         mc = modelcheck;
@@ -1134,10 +1137,21 @@ public class TML2Avatar {
                             List<String> tmp = new ArrayList<String>();
                             secChannelMap.put(ae.securityPattern.name, tmp);
                         }
+                        
                         secChannelMap.get(ae.securityPattern.name).add(ch.getName());
-                        as.addValue(ae.securityPattern.name + "_encrypted");
-                        AvatarAttribute data = new AvatarAttribute(ae.securityPattern.name + "_encrypted", AvatarType.INTEGER, block, null);
-                        block.addAttribute(data);
+                        if (aec.getEncForm()){
+                        	as.addValue(ae.securityPattern.name + "_encrypted");
+                        	AvatarAttribute data = new AvatarAttribute(ae.securityPattern.name + "_encrypted", AvatarType.INTEGER, block, null);
+                        	block.addAttribute(data);
+                        }
+                        else {
+							if (block.getAvatarAttributeWithName(ae.securityPattern.name) == null){
+                       			AvatarAttribute data = new AvatarAttribute(ae.securityPattern.name, AvatarType.INTEGER, block, null);
+								block.addAttribute(data);
+							}
+							as.addValue(ae.securityPattern.name);
+ 	                       
+                        }
                     }
                 } else {
                     as.addValue(getName(ch.getName()) + "_chData");
@@ -1217,10 +1231,22 @@ public class TML2Avatar {
                         AvatarAttribute data = new AvatarAttribute("encryptedKey_" + ae.securityPattern.key, AvatarType.INTEGER, block, null);
                         block.addAttribute(data);
                     } else {
-                        //send encrypted data
-                        as.addValue(ae.securityPattern.name + "_encrypted");
-                        AvatarAttribute data = new AvatarAttribute(ae.securityPattern.name + "_encrypted", AvatarType.INTEGER, block, null);
-                        block.addAttribute(data);
+                        //send encrypted data 
+                        //
+                        if (aec.getEncForm()){
+                        	as.addValue(ae.securityPattern.name + "_encrypted");
+                        	AvatarAttribute data = new AvatarAttribute(ae.securityPattern.name + "_encrypted", AvatarType.INTEGER, block, null);
+                        	block.addAttribute(data);
+						}
+                        else {
+                        	//Send unecrypted form
+                        	if (block.getAvatarAttributeWithName(ae.securityPattern.name) == null){
+                       			AvatarAttribute data = new AvatarAttribute(ae.securityPattern.name, AvatarType.INTEGER, block, null);
+                        		block.addAttribute(data);
+                        	}
+                        	as.addValue(ae.securityPattern.name);
+                        }
+                        
                         if (!secChannelMap.containsKey(ae.securityPattern.name)) {
                             List<String> tmp = new ArrayList<String>();
                             secChannelMap.put(ae.securityPattern.name, tmp);
@@ -1675,497 +1701,532 @@ public class TML2Avatar {
 							tran.addNext(newStart);
 						}*/
 
-                }
-
-
-                asm.setStartState(ss);
-
-            } else {
-                //Not requested
-                List<AvatarStateMachineElement> elementList = translateState(task.getActivityDiagram().get(0), block);
-                for (AvatarStateMachineElement e : elementList) {
-                    e.setName(processName(e.getName(), e.getID()));
-                    asm.addElement(e);
-                    stateObjectMap.put(task.getName().split("__")[1] + "__" + e.getName(), e.getReferenceObject());
-                }
-                asm.setStartState((AvatarStartState) elementList.get(0));
-            }
-            for (SecurityPattern secPattern : secPatterns) {
-                AvatarAttribute sec = new AvatarAttribute(secPattern.name, AvatarType.INTEGER, block, null);
-                AvatarAttribute enc = new AvatarAttribute(secPattern.name + "_encrypted", AvatarType.INTEGER, block, null);
-                block.addAttribute(sec);
-                block.addAttribute(enc);
-                avspec.addPragma(new AvatarPragmaSecret("#Confidentiality " + block.getName() + "." + secPattern.name, null, sec));
-            }
-
-        }
-
-
-        //Add authenticity pragmas
-        for (String s : signalAuthOriginMap.keySet()) {
-            if (signalAuthDestMap.containsKey(s)) {
-                AvatarPragmaAuthenticity pragma = new AvatarPragmaAuthenticity("#Authenticity " + signalAuthOriginMap.get(s).getName() + " " + signalAuthDestMap.get(s).getName(), signalAuthOriginMap.get(s).getReferenceObject(), signalAuthOriginMap.get(s), signalAuthDestMap.get(s));
-                //TraceManager.addDev("adding pragma " + s);
-                avspec.addPragma(pragma);
-            }
-        }
-
-        //Create relations
-        //Channels are ?? to ??
-        //Requests are n to 1
-        //Events are ?? to ??
-        AvatarBlock fifo = new AvatarBlock("FIFO", avspec, null);
-        for (TMLChannel channel : tmlmodel.getChannels()) {
-            if (channel.getName().contains("JOINCHANNEL")) {
-                AvatarRelation ar = new AvatarRelation(channel.getName(), taskBlockMap.get(channel.getOriginTask()), taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
-                ar.setPrivate(false);
-                if (channel.getType() == TMLChannel.BRBW) {
-                    ar.setAsynchronous(true);
-                    ar.setSizeOfFIFO(channel.getSize());
-                    ar.setBlocking(true);
-                } else if (channel.getType() == TMLChannel.BRNBW) {
-                    ar.setAsynchronous(true);
-                    ar.setSizeOfFIFO(channel.getSize());
-                    ar.setBlocking(false);
-                } else {
-                    //Create new block, hope for best
-                    if (mc) {
-                        fifo = createFifo(channel.getName());
-                        ar.setAsynchronous(false);
-                    }
-                }
-                //TraceManager.addDev(channel.getName() + " " +channel.getOriginTask().getName() + " " + channel.getDestinationTask().getName());
-                //Find in signal
-                //Sig1 contains IN Signals, Sig2 contains OUT signals
-                List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
-                List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
-                for (AvatarSignal sig : taskBlockMap.get(channel.getDestinationTask()).getSignals()) {
-                    if (sig.getInOut() == AvatarSignal.IN) {
-                        String name = sig.getName();
-                        String tmp = getName(channel.getName());
-                        if (name.equals(tmp.split("JOIN")[tmp.split("JOIN").length - 1]) || name.equals(tmp)) {
-                            sig1.add(sig);
-                        }
-                    }
-                }
-                for (AvatarSignal sig : taskBlockMap.get(channel.getOriginTask()).getSignals()) {
-                    if (sig.getInOut() == AvatarSignal.OUT) {
-                        String name = sig.getName();
-                        String tmp = getName(channel.getName());
-                        if (name.equals(tmp.split("JOIN")[tmp.split("JOIN").length - 1]) || name.equals(tmp)) {
-                            sig2.add(sig);
-                        }
-                    }
-                }
-                TraceManager.addDev("Signals " + sig1 + " " + sig2);
-                if (sig1.size() == 1 && sig2.size() == 1) {
-                    if (channel.getType() == TMLChannel.NBRNBW && mc) {
-                        AvatarSignal read = fifo.getSignalByName("readSignal");
-
-                        ar.block2 = fifo;
-                        //Set IN signal with read
-                        ar.addSignals(sig1.get(0), read);
-                        AvatarRelation ar2 = new AvatarRelation(channel.getName() + "2", fifo, taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
-                        AvatarSignal write = fifo.getSignalByName("writeSignal");
-                        //set OUT signal with write
-                        ar2.addSignals(write, sig2.get(0));
-                        TraceManager.addDev("Set " + sig2.get(0) + " and write");
-                        ar2.setAsynchronous(false);
-                        avspec.addRelation(ar2);
-                    } else {
-                        ar.addSignals(sig2.get(0), sig1.get(0));
-                    }
-                }
-                avspec.addRelation(ar);
-            } else if (channel.isBasicChannel()) {
-                //TraceManager.addDev("checking channel " + channel.getName());
-                AvatarRelation ar = new AvatarRelation(channel.getName(), taskBlockMap.get(channel.getOriginTask()), taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
-                LinkedList<HwCommunicationNode> path = tmlmap.findNodesForElement(channel);
-                if (path.size() != 0) {
-                    ar.setPrivate(true);
-                    for (HwCommunicationNode node : path) {
-                        if (node instanceof HwBus) {
-                            if (((HwBus) node).privacy == 0) {
-                                ar.setPrivate(false);
-                            }
-                        }
-                    }
-                } else {
-                    ar.setPrivate(originDestMap.get(channel.getOriginTask().getName() + "__" + channel.getDestinationTask().getName()) == 1);
-                }
-                if (channel.getType() == TMLChannel.BRBW) {
-                    ar.setAsynchronous(true);
-                    ar.setSizeOfFIFO(channel.getSize());
-                    ar.setBlocking(true);
-                } else if (channel.getType() == TMLChannel.BRNBW) {
-                    ar.setAsynchronous(true);
-                    ar.setSizeOfFIFO(channel.getSize());
-                    ar.setBlocking(false);
-                } else {
-                    //Create new block, hope for best
-                    if (mc) {
-                        fifo = createFifo(channel.getName());
-                        ar.setAsynchronous(false);
-                    }
-                }
-                //Find in signal
-                List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
-                //Sig1 contains IN Signals, Sig2 contains OUT signals
-                List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
-                for (AvatarSignal sig : signals) {
-                    if (sig.getInOut() == AvatarSignal.IN) {
-                        String name = sig.getName();
-                        if (name.equals(getName(channel.getName()))) {
-                            sig1.add(sig);
-                        }
-                    }
-                }
-                //Find out signal
-                for (AvatarSignal sig : signals) {
-                    if (sig.getInOut() == AvatarSignal.OUT) {
-                        String name = sig.getName();
-                        if (name.equals(getName(channel.getName()))) {
-                            sig2.add(sig);
-                        }
-                    }
-                }
-                if (sig1.size() == 0) {
-                    sig1.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.IN, null));
-                }
-                if (sig2.size() == 0) {
-                    sig2.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.OUT, null));
-                }
-                if (sig1.size() == 1 && sig2.size() == 1) {
-                    if (channel.getType() == TMLChannel.NBRNBW && mc) {
-                        AvatarSignal read = fifo.getSignalByName("readSignal");
-
-                        ar.block2 = fifo;
-                        //Set IN signal with read
-                        ar.addSignals(sig1.get(0), read);
-                        AvatarRelation ar2 = new AvatarRelation(channel.getName() + "2", fifo, taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
-                        AvatarSignal write = fifo.getSignalByName("writeSignal");
-                        //set OUT signal with write
-                        ar2.addSignals(write, sig2.get(0));
-                        TraceManager.addDev("Set " + sig2.get(0) + " and write");
-                        ar2.setAsynchronous(false);
-                        avspec.addRelation(ar2);
-                    } else {
-                        ar.addSignals(sig2.get(0), sig1.get(0));
-                    }
-                } else {
-                    //Create relation if it does not exist
-                    if (top.getSignalByName(getName(channel.getName()) + "in") == null) {
-                        AvatarRelation relation = new AvatarRelation(channel.getName(), top, top, channel.getReferenceObject());
-                        AvatarSignal s1 = new AvatarSignal(getName(channel.getName()) + "in", AvatarSignal.IN, null);
-                        AvatarSignal s2 = new AvatarSignal(getName(channel.getName()) + "out", AvatarSignal.OUT, null);
-                        top.addSignal(s1);
-                        top.addSignal(s2);
-                        relation.addSignals(s2, s1);
-                        avspec.addRelation(relation);
-                        TraceManager.addDev("Failure to match signals for TMLChannel " + channel.getName());
-                    }
-                }
-                avspec.addRelation(ar);
-            } else {
-                TraceManager.addDev("Found non-basic channel");
-                //If not a basic channel, create a relation between TOP block and itself
-                AvatarRelation relation = new AvatarRelation(channel.getName(), top, top, channel.getReferenceObject());
-                AvatarSignal s1 = new AvatarSignal(getName(channel.getName()) + "in", AvatarSignal.IN, null);
-                AvatarSignal s2 = new AvatarSignal(getName(channel.getName()) + "out", AvatarSignal.OUT, null);
-                top.addSignal(s1);
-                top.addSignal(s2);
-                relation.addSignals(s2, s1);
-                avspec.addRelation(relation);
-                for (TMLTask t1 : channel.getOriginTasks()) {
-                    for (TMLTask t2 : channel.getDestinationTasks()) {
-                        AvatarRelation ar = new AvatarRelation(channel.getName(), taskBlockMap.get(t1), taskBlockMap.get(t2), channel.getReferenceObject());
-                        ar.setPrivate(originDestMap.get(t1.getName() + "__" + t2.getName()) == 1);
-                        //Find in signal
-                        List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
-                        List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
-                        for (AvatarSignal sig : signals) {
-                            if (sig.getInOut() == AvatarSignal.IN) {
-                                String name = sig.getName();
-                                if (name.equals(getName(channel.getName()))) {
-                                    sig1.add(sig);
-                                }
-                            }
-                        }
-                        //Find out signal
-                        for (AvatarSignal sig : signals) {
-                            if (sig.getInOut() == AvatarSignal.OUT) {
-                                String name = sig.getName();
-                                if (name.equals(getName(channel.getName()))) {
-                                    sig2.add(sig);
-                                }
-                            }
-                        }
-                        if (sig1.size() == 0) {
-                            sig1.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.IN, null));
-                        }
-                        if (sig2.size() == 0) {
-                            sig2.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.OUT, null));
-                        }
-                        if (sig1.size() == 1 && sig2.size() == 1) {
-                            ar.addSignals(sig2.get(0), sig1.get(0));
-                        } else {
-                            TraceManager.addDev("Failure to match signals for TMLChannel " + channel.getName() + " between " + t1.getName() + " and " + t2.getName());
-                        }
-                        avspec.addRelation(ar);
-                    }
-                }
-            }
-        }
-        for (TMLRequest request : tmlmodel.getRequests()) {
-            for (TMLTask t1 : request.getOriginTasks()) {
-                AvatarRelation ar = new AvatarRelation(request.getName(), taskBlockMap.get(t1), taskBlockMap.get(request.getDestinationTask()), request.getReferenceObject());
-                ar.setPrivate(originDestMap.get(t1.getName() + "__" + request.getDestinationTask().getName()) == 1);
-                List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
-                List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
-                for (AvatarSignal sig : signals) {
-                    if (sig.getInOut() == AvatarSignal.IN) {
-                        String name = sig.getName();
-
-                        if (name.equals(getName(request.getName()))) {
-                            sig1.add(sig);
-                        }
-                    }
-                }
-                //Find out signal
-                for (AvatarSignal sig : signals) {
-                    if (sig.getInOut() == AvatarSignal.OUT) {
-                        String name = sig.getName();
+					}
 
-                        if (name.equals(getName(request.getName()))) {
-                            sig2.add(sig);
-                        }
-                    }
-                }
-                if (sig1.size() == 0) {
-                    sig1.add(new AvatarSignal(getName(request.getName()), AvatarSignal.IN, null));
-                }
-                if (sig2.size() == 0) {
-                    sig2.add(new AvatarSignal(getName(request.getName()), AvatarSignal.OUT, null));
-                }
-                if (sig1.size() == 1 && sig2.size() == 1) {
-                    ar.addSignals(sig2.get(0), sig1.get(0));
-                } else {
-                    //Throw error
-                    TraceManager.addDev("Could not match for " + request.getName());
-                }
 
-                ar.setAsynchronous(false);
-                avspec.addRelation(ar);
-            }
-        }
-        for (TMLEvent event : tmlmodel.getEvents()) {
+					asm.setStartState(ss);
 
-            AvatarRelation ar = new AvatarRelation(event.getName(), taskBlockMap.get(event.getOriginTask()), taskBlockMap.get(event.getDestinationTask()), event.getReferenceObject());
-            ar.setPrivate(originDestMap.get(event.getOriginTask().getName() + "__" + event.getDestinationTask().getName()) == 1);
-            List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
-            List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
-            for (AvatarSignal sig : signals) {
-                if (sig.getInOut() == AvatarSignal.IN) {
-                    String name = sig.getName();
-                    if (name.equals(getName(event.getName()))) {
-                        sig1.add(sig);
-                    }
-                }
-            }
-            //Find out signal
-            for (AvatarSignal sig : signals) {
-                if (sig.getInOut() == AvatarSignal.OUT) {
-                    String name = sig.getName();
-                    if (name.equals(getName(event.getName()))) {
-                        sig2.add(sig);
-                    }
-                }
-            }
-            if (sig1.size() == 0) {
-                sig1.add(new AvatarSignal(getName(event.getName()), AvatarSignal.IN, null));
-            }
-            if (sig2.size() == 0) {
-                sig2.add(new AvatarSignal(getName(event.getName()), AvatarSignal.OUT, null));
-            }
-            if (sig1.size() == 1 && sig2.size() == 1) {
-                ar.addSignals(sig2.get(0), sig1.get(0));
-            } else {
-                //Throw error
-                TraceManager.addDev("Could not match for " + event.getName());
-            }
-            if (event.isBlocking()) {
-                ar.setAsynchronous(true);
-                ar.setBlocking(true);
-                ar.setSizeOfFIFO(event.getMaxSize());
-            } else {
-                ar.setAsynchronous(true);
-                ar.setBlocking(false);
-                ar.setSizeOfFIFO(event.getMaxSize());
-
-            }
-            avspec.addRelation(ar);
-        }
-        for (AvatarSignal sig : signals) {
-            //check that all signals are put in relations
-            AvatarRelation ar = avspec.getAvatarRelationWithSignal(sig);
-            if (ar == null) {
-                TraceManager.addDev("missing relation for " + sig.getName());
-            }
-        }
-        //Check if we matched up all signals
-        for (SecurityPattern sp : symKeys.keySet()) {
-            if (symKeys.get(sp).size() > 1) {
-                String keys = "";
-                for (AvatarAttribute key : symKeys.get(sp)) {
-                    keys = keys + " " + key.getBlock().getName() + "." + key.getName();
-                }
-                avspec.addPragma(new AvatarPragmaInitialKnowledge("#InitialSessionKnowledge " + keys, null, symKeys.get(sp), true));
-            }
-        }
-        for (SecurityPattern sp : pubKeys.keySet()) {
-            if (pubKeys.get(sp).size() != 0) {
-                String keys = "";
-                for (AvatarAttribute key : pubKeys.get(sp)) {
-                    keys = keys + " " + key.getBlock().getName() + "." + key.getName();
-                }
-                avspec.addPragma(new AvatarPragmaInitialKnowledge("#InitialSessionKnowledge " + keys, null, pubKeys.get(sp), true));
-            }
-        }
-        tmlmap.getTMLModeling().secChannelMap = secChannelMap;
+				}
+				else {
+					//Not requested
+					List<AvatarStateMachineElement> elementList= translateState(task.getActivityDiagram().get(0), block);
+					for (AvatarStateMachineElement e: elementList){
+						e.setName(processName(e.getName(), e.getID()));
+						asm.addElement(e);
+						stateObjectMap.put(task.getName().split("__")[1]+"__"+e.getName(), e.getReferenceObject());
+					}
+					asm.setStartState((AvatarStartState) elementList.get(0));
+				}
+				for (SecurityPattern secPattern: secPatterns){
+					AvatarAttribute sec = block.getAvatarAttributeWithName(secPattern.name);
+					if (sec==null){
+						sec = new AvatarAttribute(secPattern.name, AvatarType.INTEGER, block, null);
+						AvatarAttribute enc = new AvatarAttribute(secPattern.name+"_encrypted", AvatarType.INTEGER, block, null);
+						block.addAttribute(sec);
+						block.addAttribute(enc);
+					}
+					avspec.addPragma(new AvatarPragmaSecret("#Confidentiality "+block.getName() + "."+ secPattern.name, null, sec));
+				}
 
-        //	TraceManager.addDev("avatar spec\n" +avspec);
-        return avspec;
-    }
+			}
 
-    public void backtraceReachability(Map<AvatarPragmaReachability, ProVerifQueryResult> reachabilityResults) {
-        for (AvatarPragmaReachability pragma : reachabilityResults.keySet()) {
-            ProVerifQueryResult result = reachabilityResults.get(pragma);
-            if (!result.isProved())
-                continue;
 
-            int r = result.isSatisfied() ? 1 : 2;
+			//Add authenticity pragmas
+			for (String s: signalAuthOriginMap.keySet()){
+				if (signalAuthDestMap.containsKey(s)){
+					AvatarPragmaAuthenticity pragma = new AvatarPragmaAuthenticity("#Authenticity " + signalAuthOriginMap.get(s).getName() + " " + signalAuthDestMap.get(s).getName(), signalAuthOriginMap.get(s).getReferenceObject(), signalAuthOriginMap.get(s), signalAuthDestMap.get(s));
+					if (secChannelMap.containsKey(s)){
+						for (String channel: secChannelMap.get(s)){
+							TMLChannel ch = tmlmodel.getChannelByShortName(channel);
+							if (ch!=null){
+								if (ch.checkAuth){
+									avspec.addPragma(pragma);	
+									break;
+								}
+							}
+						}
+						
+					}
+					else {
+						avspec.addPragma(pragma);
+					}
+				}
+			}
+
+			//Create relations
+			//Channels are ?? to ??
+			//Requests are n to 1
+			//Events are ?? to ??
+			AvatarBlock fifo = new AvatarBlock("FIFO", avspec,null);
+			for (TMLChannel channel:tmlmodel.getChannels()){
+				if (channel.getName().contains("JOINCHANNEL")){
+					AvatarRelation ar= new AvatarRelation(channel.getName(), taskBlockMap.get(channel.getOriginTask()), taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
+					ar.setPrivate(false);
+					if (channel.getType()==TMLChannel.BRBW){
+						ar.setAsynchronous(true);		
+						ar.setSizeOfFIFO(channel.getSize());
+						ar.setBlocking(true);
+					}
+					else if (channel.getType()==TMLChannel.BRNBW){
+						ar.setAsynchronous(true);
+						ar.setSizeOfFIFO(channel.getSize());
+						ar.setBlocking(false);
+					}
+					else {
+						//Create new block, hope for best
+						if (mc){
+							fifo = createFifo(channel.getName());
+							ar.setAsynchronous(false);
+						}
+					}
+					//System.out.println(channel.getName() + " " +channel.getOriginTask().getName() + " " + channel.getDestinationTask().getName());
+					//Find in signal
+					//Sig1 contains IN Signals, Sig2 contains OUT signals
+					List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
+					List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
+					for (AvatarSignal sig: taskBlockMap.get(channel.getDestinationTask()).getSignals()){
+						if (sig.getInOut()==AvatarSignal.IN){
+							String name = sig.getName();
+							String tmp = getName(channel.getName());
+							if (name.equals(tmp.split("JOIN")[tmp.split("JOIN").length-1]) || name.equals(tmp)){
+								sig1.add(sig);
+							}
+						}
+					}
+					for (AvatarSignal sig: taskBlockMap.get(channel.getOriginTask()).getSignals()){
+						if (sig.getInOut()==AvatarSignal.OUT){
+							String name = sig.getName();
+							String tmp = getName(channel.getName());
+							if (name.equals(tmp.split("JOIN")[tmp.split("JOIN").length-1]) || name.equals(tmp)){
+								sig2.add(sig);
+							}
+						}
+					}
 
-            String s = pragma.getBlock().getName() + "__" + pragma.getState().getName();
+					if (sig1.size()==1 && sig2.size()==1){
+						if (channel.getType()==TMLChannel.NBRNBW && mc){
+							AvatarSignal read = fifo.getSignalByName("readSignal");
+
+							ar.block2= fifo;
+							//Set IN signal with read
+							ar.addSignals(sig1.get(0), read);
+							AvatarRelation ar2= new AvatarRelation(channel.getName()+"2", fifo, taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
+							AvatarSignal write = fifo.getSignalByName("writeSignal");
+							//set OUT signal with write
+							ar2.addSignals(write, sig2.get(0));
+							ar2.setAsynchronous(false);
+							avspec.addRelation(ar2);
+						}
+						else {
+							ar.addSignals(sig2.get(0), sig1.get(0));
+						}
+					}		
+					avspec.addRelation(ar);
+				}
 
-            if (stateObjectMap.containsKey(s)) {
-                Object obj = stateObjectMap.get(s);
-                if (obj instanceof TMLADWriteChannel) {
-                    TMLADWriteChannel wc = (TMLADWriteChannel) obj;
-                    wc.reachabilityInformation = r;
-                }
-                if (obj instanceof TMLADReadChannel) {
-                    TMLADReadChannel wc = (TMLADReadChannel) obj;
-                    wc.reachabilityInformation = r;
-                }
+				else if (channel.isBasicChannel()){
+					//System.out.println("checking channel " + channel.getName());
+					AvatarRelation ar= new AvatarRelation(channel.getName(), taskBlockMap.get(channel.getOriginTask()), taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
+					LinkedList<HwCommunicationNode> path =tmlmap.findNodesForElement(channel);
+					if (path.size()!=0){
+						ar.setPrivate(true);
+						for (HwCommunicationNode node:path){
+							if (node instanceof HwBus){
+								if (((HwBus) node).privacy ==0){
+									ar.setPrivate(false);
+								}
+							}
+						}
+					}
+					else {
+						ar.setPrivate(originDestMap.get(channel.getOriginTask().getName()+"__"+channel.getDestinationTask().getName())==1);
+					}
+					if (channel.getType()==TMLChannel.BRBW){
+						ar.setAsynchronous(true);		
+						ar.setSizeOfFIFO(channel.getSize());
+						ar.setBlocking(true);
+					}
+					else if (channel.getType()==TMLChannel.BRNBW){
+						ar.setAsynchronous(true);
+						ar.setSizeOfFIFO(channel.getSize());
+						ar.setBlocking(false);
+					}
+					else {
+						//Create new block, hope for best
+						if (mc){
+							fifo = createFifo(channel.getName());
+							ar.setAsynchronous(false);
+						}
+					}
+					//Find in signal
+					List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
+					//Sig1 contains IN Signals, Sig2 contains OUT signals
+					List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
+					for (AvatarSignal sig: signals){
+						if (sig.getInOut()==AvatarSignal.IN){
+							String name = sig.getName();
+							if (name.equals(getName(channel.getName()))){
+								sig1.add(sig);
+							}
+						}
+					}
+					//Find out signal
+					for (AvatarSignal sig: signals){
+						if (sig.getInOut()==AvatarSignal.OUT){
+							String name = sig.getName();
+							if (name.equals(getName(channel.getName()))){
+								sig2.add(sig);
+							}
+						}
+					}
+					if (sig1.size()==0){
+						sig1.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.IN, null));
+					}
+					if (sig2.size()==0){
+						sig2.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.OUT, null));
+					}
+					if (sig1.size()==1 && sig2.size()==1){
+						if (channel.getType()==TMLChannel.NBRNBW && mc){
+							AvatarSignal read = fifo.getSignalByName("readSignal");
+
+							ar.block2= fifo;
+							//Set IN signal with read
+							ar.addSignals(sig1.get(0), read);
+							AvatarRelation ar2= new AvatarRelation(channel.getName()+"2", fifo, taskBlockMap.get(channel.getDestinationTask()), channel.getReferenceObject());
+							AvatarSignal write = fifo.getSignalByName("writeSignal");
+							//set OUT signal with write
+							ar2.addSignals(write, sig2.get(0));
+							System.out.println("Set " + sig2.get(0) + " and write");
+							ar2.setAsynchronous(false);
+							avspec.addRelation(ar2);
+						}
+						else {
+							ar.addSignals(sig2.get(0), sig1.get(0));
+						}
+					}
+					else {
+						//Create relation if it does not exist
+						if (top.getSignalByName(getName(channel.getName())+"in")==null){
+							AvatarRelation relation= new AvatarRelation(channel.getName(), top, top, channel.getReferenceObject());
+							AvatarSignal s1 = new AvatarSignal(getName(channel.getName())+"in", AvatarSignal.IN, null);
+							AvatarSignal s2 = new AvatarSignal(getName(channel.getName())+"out", AvatarSignal.OUT, null);
+							top.addSignal(s1);
+							top.addSignal(s2);
+							relation.addSignals(s2,s1);
+							avspec.addRelation(relation);
+							System.out.println("Failure to match signals for TMLChannel "+ channel.getName());
+						}
+					}
+					avspec.addRelation(ar);
+				}
+				else {
+					System.out.println("Found non-basic channel");
+					//If not a basic channel, create a relation between TOP block and itself
+					AvatarRelation relation= new AvatarRelation(channel.getName(), top, top, channel.getReferenceObject());
+					AvatarSignal s1 = new AvatarSignal(getName(channel.getName())+"in", AvatarSignal.IN, null);
+					AvatarSignal s2 = new AvatarSignal(getName(channel.getName())+"out", AvatarSignal.OUT, null);
+					top.addSignal(s1);
+					top.addSignal(s2);
+					relation.addSignals(s2,s1);
+					avspec.addRelation(relation);
+					for (TMLTask t1: channel.getOriginTasks()){
+						for (TMLTask t2: channel.getDestinationTasks()){
+							AvatarRelation ar= new AvatarRelation(channel.getName(), taskBlockMap.get(t1), taskBlockMap.get(t2), channel.getReferenceObject());
+							ar.setPrivate(originDestMap.get(t1.getName()+"__"+t2.getName())==1);
+							//Find in signal
+							List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
+							List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
+							for (AvatarSignal sig: signals){
+								if (sig.getInOut()==AvatarSignal.IN){
+									String name = sig.getName();
+									if (name.equals(getName(channel.getName()))){
+										sig1.add(sig);
+									}
+								}
+							}
+							//Find out signal
+							for (AvatarSignal sig: signals){
+								if (sig.getInOut()==AvatarSignal.OUT){
+									String name = sig.getName();
+									if (name.equals(getName(channel.getName()))){
+										sig2.add(sig);
+									}
+								}
+							}
+							if (sig1.size()==0){
+								sig1.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.IN, null));
+							}
+							if (sig2.size()==0){
+								sig2.add(new AvatarSignal(getName(channel.getName()), AvatarSignal.OUT, null));
+							}
+							if (sig1.size()==1 && sig2.size()==1){
+								ar.addSignals(sig2.get(0), sig1.get(0));
+							}
+							else {
+								System.out.println("Failure to match signals for TMLChannel "+ channel.getName() + " between " + t1.getName() + " and "+ t2.getName());
+							}
+							avspec.addRelation(ar);
+						}
+					}
+				}
+			}
+			for (TMLRequest request: tmlmodel.getRequests()){
+				for (TMLTask t1: request.getOriginTasks()){
+					AvatarRelation ar = new AvatarRelation(request.getName(), taskBlockMap.get(t1), taskBlockMap.get(request.getDestinationTask()), request.getReferenceObject());
+					ar.setPrivate(originDestMap.get(t1.getName()+"__"+request.getDestinationTask().getName())==1);		
+					List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
+					List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
+					for (AvatarSignal sig: signals){
+						if (sig.getInOut()==AvatarSignal.IN){
+							String name = sig.getName();
+
+							if (name.equals(getName(request.getName()))){
+								sig1.add(sig);
+							}
+						}
+					}
+					//Find out signal
+					for (AvatarSignal sig: signals){
+						if (sig.getInOut()==AvatarSignal.OUT){
+							String name = sig.getName();
 
-                if (obj instanceof TMLADSendEvent) {
-                    TMLADSendEvent wc = (TMLADSendEvent) obj;
-                    wc.reachabilityInformation = r;
-                }
+							if (name.equals(getName(request.getName()))){
+								sig2.add(sig);
+							}
+						}
+					}
+					if (sig1.size()==0){
+						sig1.add(new AvatarSignal(getName(request.getName()), AvatarSignal.IN, null));
+					}
+					if (sig2.size()==0){
+						sig2.add(new AvatarSignal(getName(request.getName()), AvatarSignal.OUT, null));
+					}
+					if (sig1.size()==1 && sig2.size()==1){
+						ar.addSignals(sig2.get(0), sig1.get(0));
+					}
+					else {
+						//Throw error
+						System.out.println("Could not match for " + request.getName());
+					}
 
-                if (obj instanceof TMLADSendRequest) {
-                    TMLADSendRequest wc = (TMLADSendRequest) obj;
-                    wc.reachabilityInformation = r;
-                }
-                if (obj instanceof TMLADWaitEvent) {
-                    TMLADWaitEvent wc = (TMLADWaitEvent) obj;
-                    wc.reachabilityInformation = r;
-                }
-            }
-        }
-    }
+					ar.setAsynchronous(false);
+					avspec.addRelation(ar);
+				}
+			}
+			for (TMLEvent event: tmlmodel.getEvents()){
+
+				AvatarRelation ar = new AvatarRelation(event.getName(), taskBlockMap.get(event.getOriginTask()), taskBlockMap.get(event.getDestinationTask()), event.getReferenceObject());
+				ar.setPrivate(originDestMap.get(event.getOriginTask().getName()+"__"+event.getDestinationTask().getName())==1);
+				List<AvatarSignal> sig1 = new ArrayList<AvatarSignal>();
+				List<AvatarSignal> sig2 = new ArrayList<AvatarSignal>();
+				for (AvatarSignal sig: signals){
+					if (sig.getInOut()==AvatarSignal.IN){
+						String name = sig.getName();
+						if (name.equals(getName(event.getName()))){
+							sig1.add(sig);
+						}
+					}
+				}
+				//Find out signal
+				for (AvatarSignal sig: signals){
+					if (sig.getInOut()==AvatarSignal.OUT){
+						String name = sig.getName();
+						if (name.equals(getName(event.getName()))){
+							sig2.add(sig);
+						}
+					}
+				}
+				if (sig1.size()==0){
+					sig1.add(new AvatarSignal(getName(event.getName()), AvatarSignal.IN, null));
+				}
+				if (sig2.size()==0){
+					sig2.add(new AvatarSignal(getName(event.getName()), AvatarSignal.OUT, null));
+				}
+				if (sig1.size()==1 && sig2.size()==1){
+					ar.addSignals(sig2.get(0), sig1.get(0));
+				}
+				else {
+					//Throw error
+					System.out.println("Could not match for " + event.getName());
+				}
+				if (event.isBlocking()){
+					ar.setAsynchronous(true);
+					ar.setBlocking(true);
+					ar.setSizeOfFIFO(event.getMaxSize());
+				}
+				else {
+					ar.setAsynchronous(true);
+					ar.setBlocking(false);
+					ar.setSizeOfFIFO(event.getMaxSize());
 
-    public void distributeKeys() {
-        List<TMLTask> tasks = tmlmap.getTMLModeling().getTasks();
-        for (TMLTask t : accessKeys.keySet()) {
-            AvatarBlock b = taskBlockMap.get(t);
-            for (SecurityPattern sp : accessKeys.get(t)) {
-                if (sp.type.equals("Symmetric Encryption") || sp.type.equals("MAC")) {
-                    AvatarAttribute key = new AvatarAttribute("key_" + sp.name, AvatarType.INTEGER, b, null);
-                    if (symKeys.containsKey(sp)) {
-                        symKeys.get(sp).add(key);
-                    } else {
-                        LinkedList<AvatarAttribute> tmp = new LinkedList<AvatarAttribute>();
-                        tmp.add(key);
-                        symKeys.put(sp, tmp);
-                    }
-                    b.addAttribute(key);
-                } else if (sp.type.equals("Asymmetric Encryption")) {
-                    AvatarAttribute pubkey = new AvatarAttribute("pubKey_" + sp.name, AvatarType.INTEGER, b, null);
-                    b.addAttribute(pubkey);
-
-                    AvatarAttribute privkey = new AvatarAttribute("privKey_" + sp.name, AvatarType.INTEGER, b, null);
-                    b.addAttribute(privkey);
-                    avspec.addPragma(new AvatarPragmaPrivatePublicKey("#PrivatePublicKeys " + b.getName() + " " + privkey.getName() + " " + pubkey.getName(), null, privkey, pubkey));
-                    if (pubKeys.containsKey(sp)) {
-                        pubKeys.get(sp).add(pubkey);
-                    } else {
-                        LinkedList<AvatarAttribute> tmp = new LinkedList<AvatarAttribute>();
-                        tmp.add(pubkey);
-                        pubKeys.put(sp, tmp);
-                    }
-                    //Distribute public key everywhere
-                    for (TMLTask task2 : tasks) {
-                        AvatarBlock b2 = taskBlockMap.get(task2);
-                        pubkey = new AvatarAttribute("pubKey_" + sp.name, AvatarType.INTEGER, b2, null);
-                        b2.addAttribute(pubkey);
-                        if (pubKeys.containsKey(sp)) {
-                            pubKeys.get(sp).add(pubkey);
-                        }
-                    }
-                }
-            }
-        }
+				}
+				avspec.addRelation(ar);
+			}
+			for (AvatarSignal sig: signals){
+				//check that all signals are put in relations
+				AvatarRelation ar = avspec.getAvatarRelationWithSignal(sig);
+				if (ar==null){
+					System.out.println("missing relation for " + sig.getName());
+				}
+			}
+			//Check if we matched up all signals
+			for (SecurityPattern sp:symKeys.keySet()){
+				if (symKeys.get(sp).size()>1){	
+					String keys = "";
+					for (AvatarAttribute key: symKeys.get(sp)){
+						keys= keys+" "+key.getBlock().getName() + "."+key.getName();
+					}
+					avspec.addPragma(new AvatarPragmaInitialKnowledge("#InitialSessionKnowledge "+ keys, null, symKeys.get(sp), true));
+				}
+			}
+			for (SecurityPattern sp:pubKeys.keySet()){
+				if (pubKeys.get(sp).size()!=0){
+					String keys = "";
+					for (AvatarAttribute key: pubKeys.get(sp)){
+						keys= keys+" "+key.getBlock().getName() + "."+key.getName();
+					}
+					avspec.addPragma(new AvatarPragmaInitialKnowledge("#InitialSessionKnowledge "+keys, null, pubKeys.get(sp),true));
+				}
+			}
+			tmlmap.getTMLModeling().secChannelMap = secChannelMap;
+	
+		//	System.out.println("avatar spec\n" +avspec);
+			return avspec;
+		}
+
+		public void backtraceReachability( Map<AvatarPragmaReachability, ProVerifQueryResult> reachabilityResults) {
+			for (AvatarPragmaReachability pragma: reachabilityResults.keySet())
+			{
+				ProVerifQueryResult result = reachabilityResults.get(pragma);
+				if (!result.isProved())
+					continue;
+
+				int r = result.isSatisfied() ? 1 : 2;
+
+				String s = pragma.getBlock().getName() + "__" + pragma.getState().getName();
+
+				if (stateObjectMap.containsKey(s)) {
+					Object obj = stateObjectMap.get(s);
+					if (obj instanceof TMLADWriteChannel){
+						TMLADWriteChannel wc =(TMLADWriteChannel) obj;
+						wc.reachabilityInformation=r;
+					}
+					if (obj instanceof TMLADReadChannel){
+						TMLADReadChannel wc =(TMLADReadChannel) obj;
+						wc.reachabilityInformation=r;
+					}
 
-    }
+					if (obj instanceof TMLADSendEvent){
+						TMLADSendEvent wc =(TMLADSendEvent) obj;
+						wc.reachabilityInformation=r;
+					}
 
-    public AvatarBlock createFifo(String name) {
-        AvatarBlock fifo = new AvatarBlock("FIFO__FIFO" + name, avspec, null);
-        AvatarState root = new AvatarState("root", null, false, false);
-        AvatarSignal read = new AvatarSignal("readSignal", AvatarSignal.IN, null);
-        AvatarAttribute data = new AvatarAttribute("data", AvatarType.INTEGER, fifo, null);
-        fifo.addAttribute(data);
-        read.addParameter(data);
-        AvatarSignal write = new AvatarSignal("writeSignal", AvatarSignal.OUT, null);
-        write.addParameter(data);
-        AvatarStartState start = new AvatarStartState("start", null);
-        AvatarTransition afterStart = new AvatarTransition(fifo, "afterStart", null);
-        fifo.addSignal(read);
-        fifo.addSignal(write);
-        AvatarTransition toRead = new AvatarTransition(fifo, "toReadSignal", null);
-        AvatarTransition toWrite = new AvatarTransition(fifo, "toWriteSignal", null);
-        AvatarTransition afterRead = new AvatarTransition(fifo, "afterReadSignal", null);
-        AvatarTransition afterWrite = new AvatarTransition(fifo, "afterWriteSignal", null);
-        AvatarActionOnSignal readAction = new AvatarActionOnSignal("read", read, null);
-        AvatarActionOnSignal writeAction = new AvatarActionOnSignal("write", write, null);
-
-        AvatarStateMachine asm = fifo.getStateMachine();
-        asm.addElement(start);
-        asm.setStartState(start);
-        asm.addElement(afterStart);
-        asm.addElement(root);
-        asm.addElement(toRead);
-        asm.addElement(toWrite);
-        asm.addElement(afterRead);
-        asm.addElement(afterWrite);
-        asm.addElement(readAction);
-        asm.addElement(writeAction);
-
-        start.addNext(afterStart);
-        afterStart.addNext(root);
-        root.addNext(toRead);
-        root.addNext(toWrite);
-        toRead.addNext(readAction);
-        toWrite.addNext(writeAction);
-        readAction.addNext(afterRead);
-        writeAction.addNext(afterWrite);
-        afterRead.addNext(root);
-        afterWrite.addNext(root);
-
-        avspec.addBlock(fifo);
-        return fifo;
-    }
+					if (obj instanceof TMLADSendRequest){
+						TMLADSendRequest wc =(TMLADSendRequest) obj;
+						wc.reachabilityInformation=r;
+					}
+					if (obj instanceof TMLADWaitEvent){
+						TMLADWaitEvent wc =(TMLADWaitEvent) obj;
+						wc.reachabilityInformation=r;
+					}		
+				}
+			}
+		}
 
+		public void distributeKeys(){
+			List<TMLTask> tasks = tmlmap.getTMLModeling().getTasks();
+			for (TMLTask t:accessKeys.keySet()){
+				AvatarBlock b = taskBlockMap.get(t);
+				for (SecurityPattern sp: accessKeys.get(t)){
+					if (sp.type.equals("Symmetric Encryption") || sp.type.equals("MAC")){
+						AvatarAttribute key = new AvatarAttribute("key_"+sp.name, AvatarType.INTEGER, b, null);
+						if (symKeys.containsKey(sp)){
+							symKeys.get(sp).add(key);
+						}
+						else {
+							LinkedList<AvatarAttribute> tmp = new LinkedList<AvatarAttribute>();
+							tmp.add(key);
+							symKeys.put(sp, tmp);
+						}
+						b.addAttribute(key);
+					}
+					else if (sp.type.equals("Asymmetric Encryption")){
+						AvatarAttribute pubkey = new AvatarAttribute("pubKey_"+sp.name, AvatarType.INTEGER, b, null);
+						b.addAttribute(pubkey);
+						
+						AvatarAttribute privkey = new AvatarAttribute("privKey_"+sp.name, AvatarType.INTEGER, b, null);
+						b.addAttribute(privkey);
+						avspec.addPragma(new AvatarPragmaPrivatePublicKey("#PrivatePublicKeys " +  b.getName() + " " + privkey.getName() + " " + pubkey.getName(), null, privkey, pubkey));
+						if (pubKeys.containsKey(sp)){
+							pubKeys.get(sp).add(pubkey);
+						}
+						else {
+							LinkedList<AvatarAttribute> tmp = new LinkedList<AvatarAttribute>();
+							tmp.add(pubkey);
+							pubKeys.put(sp, tmp);
+						}
+						//Distribute public key everywhere
+						for (TMLTask task2 : tasks){
+							AvatarBlock b2 = taskBlockMap.get(task2);
+							pubkey = new AvatarAttribute("pubKey_"+sp.name, AvatarType.INTEGER, b2, null);
+							b2.addAttribute(pubkey);
+							if (pubKeys.containsKey(sp)){
+								pubKeys.get(sp).add(pubkey);
+							}
+						}		
+					}
+				}
+			}
+			
+		}
+		public AvatarBlock createFifo(String name){
+			AvatarBlock fifo = new AvatarBlock("FIFO__FIFO"+name, avspec, null);
+			AvatarState root = new AvatarState("root",null, false, false);
+			AvatarSignal read = new AvatarSignal("readSignal", AvatarSignal.IN, null);
+			AvatarAttribute data = new AvatarAttribute("data", AvatarType.INTEGER, fifo, null);
+			fifo.addAttribute(data); 
+			read.addParameter(data);
+			AvatarSignal write = new AvatarSignal("writeSignal", AvatarSignal.OUT, null);
+			write.addParameter(data);
+			AvatarStartState start = new AvatarStartState("start", null);
+			AvatarTransition afterStart = new AvatarTransition(fifo, "afterStart", null);
+			fifo.addSignal(read);
+			fifo.addSignal(write);
+			AvatarTransition toRead = new AvatarTransition(fifo, "toReadSignal", null);
+			AvatarTransition toWrite = new AvatarTransition(fifo, "toWriteSignal", null);
+			AvatarTransition afterRead = new AvatarTransition(fifo, "afterReadSignal", null);
+			AvatarTransition afterWrite = new AvatarTransition(fifo, "afterWriteSignal", null);
+			AvatarActionOnSignal readAction= new AvatarActionOnSignal("read", read, null);	
+			AvatarActionOnSignal writeAction= new AvatarActionOnSignal("write", write, null);	
+
+			AvatarStateMachine asm = fifo.getStateMachine();
+			asm.addElement(start);
+			asm.setStartState(start);
+			asm.addElement(afterStart);
+			asm.addElement(root);
+			asm.addElement(toRead);
+			asm.addElement(toWrite);
+			asm.addElement(afterRead);
+			asm.addElement(afterWrite);
+			asm.addElement(readAction);
+			asm.addElement(writeAction);
+
+			start.addNext(afterStart);
+			afterStart.addNext(root);
+			root.addNext(toRead);
+			root.addNext(toWrite);
+			toRead.addNext(readAction);
+			toWrite.addNext(writeAction);
+			readAction.addNext(afterRead);
+			writeAction.addNext(afterWrite);
+			afterRead.addNext(root);
+			afterWrite.addNext(root);
+
+			avspec.addBlock(fifo);
+			return fifo;
+		}
+
+	
     public AvatarSpecification convertToSecurityType(AvatarSpecification spec) {
         return spec;
     }
@@ -2173,3 +2234,4 @@ public class TML2Avatar {
 }
 
 
+
diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java
index 400a7cdcc4c48affedafe00356552519401fb83f..eee1f68aadd85ff932b6fc0cb8ffa37739d985bb 100644
--- a/src/main/java/ui/ActionPerformer.java
+++ b/src/main/java/ui/ActionPerformer.java
@@ -927,6 +927,8 @@ public class ActionPerformer {
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.CAMS_PORT_CONVERTER);
         } else if (command.equals(mgui.actions[TGUIAction.CAMS_CLUSTER].getActionCommand())) {
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.CAMS_CLUSTER);
+        } else if (command.equals(mgui.actions[TGUIAction.CAMS_BLOCK_GPIO2VCI].getActionCommand())) {
+        	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.CAMS_BLOCK_GPIO2VCI);
         } else if (command.equals(mgui.actions[TGUIAction.CAMS_GENCODE].getActionCommand())){
             mgui.syscamsExecutableCodeGeneration();
 
@@ -953,11 +955,11 @@ public class ActionPerformer {
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_INDEPENDENT_VOLTAGE_SOURCE);
         } else if (command.equals(mgui.actions[TGUIAction.ELN_INDEPENDENT_CURRENT_SOURCE].getActionCommand())){
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_INDEPENDENT_CURRENT_SOURCE);
-  	} else if (command.equals(mgui.actions[TGUIAction.ELN_NODE_REF].getActionCommand())){
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_NODE_REF].getActionCommand())){
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_NODE_REF);
-	} else if (command.equals(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SINK].getActionCommand())){
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_TDF_VOLTAGE_SINK].getActionCommand())){
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_TDF_VOLTAGE_SINK);
-	} else if (command.equals(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SINK].getActionCommand())){
+        } else if (command.equals(mgui.actions[TGUIAction.ELN_TDF_CURRENT_SINK].getActionCommand())){
         	mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.ELN_TDF_CURRENT_SINK);
 
             // Attack Tree Diagrams
diff --git a/src/main/java/ui/AvatarAnalysisPanel.java b/src/main/java/ui/AvatarAnalysisPanel.java
index d23fa43365189ff3bc66691122450bc787a51f8f..e7f58e82ca96a04b1d5382613115a7801a15b0d2 100755
--- a/src/main/java/ui/AvatarAnalysisPanel.java
+++ b/src/main/java/ui/AvatarAnalysisPanel.java
@@ -292,7 +292,11 @@ public class AvatarAnalysisPanel extends TURTLEPanel {
                     cptTotal ++;
                 }
             }
-            middleX = middleX / cptTotal;
+            if (cptTotal > 0) {
+                middleX = middleX / cptTotal;
+            } else  {
+                return;
+            }
         }
 
         //TraceManager.addDev("Adding instances to last SD Step 3");
diff --git a/src/main/java/ui/GTMLModeling.java b/src/main/java/ui/GTMLModeling.java
index 405730f7d80b6e4f2c189d205103b98bdfe04d7f..545af8aa925b49b37457394b07315957ad9aa89e 100755
--- a/src/main/java/ui/GTMLModeling.java
+++ b/src/main/java/ui/GTMLModeling.java
@@ -1993,6 +1993,7 @@ public class GTMLModeling {
                 } else {
                     tmlreadchannel = new TMLReadChannel("read channel", tgc);
                     tmlreadchannel.setNbOfSamples(modifyString(((TMLADReadChannel) tgc).getSamplesValue()));
+                    tmlreadchannel.setEncForm(((TMLADReadChannel) tgc).getEncForm());               
                     tmlreadchannel.addChannel(channel);
                     //security pattern
                     if (securityPatterns.get(((TMLADReadChannel) tgc).getSecurityContext()) != null) {
@@ -2303,6 +2304,7 @@ public class GTMLModeling {
                 if (!error) {
                     tmlwritechannel = new TMLWriteChannel("write channel", tgc);
                     tmlwritechannel.setNbOfSamples(modifyString(((TMLADWriteChannel) tgc).getSamplesValue()));
+                    tmlwritechannel.setEncForm(((TMLADWriteChannel) tgc).getEncForm());
                     for (int i = 0; i < channels.length; i++) {
                         channel = tmlm.getChannelByName(getFromTable(tmltask, channels[i]));
                         tmlwritechannel.addChannel(channel);
diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java
index 7d3a248afe1f6df1e69e2c7959f1e6444fa9d2c3..a123672639e3f9dd9f9ad5b90608fdcbc9352bc0 100644
--- a/src/main/java/ui/GTURTLEModeling.java
+++ b/src/main/java/ui/GTURTLEModeling.java
@@ -739,9 +739,55 @@ public class GTURTLEModeling {
         }
         return path;
     }
+    
+    public boolean pathExists(TMLMapping<TGComponent> map, HwBridge firewallNode, TMLTask t1){
+		List<HwLink> links = map.getTMLArchitecture().getHwLinks();
+    	List<HwNode> found = new ArrayList<HwNode>();
+        List<HwNode> done = new ArrayList<HwNode>();
+        List<HwNode> path = new ArrayList<HwNode>();
+        
+        HwExecutionNode node1 = (HwExecutionNode) map.getHwNodeOf(t1);
+        
+        Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>();
+        for (HwLink link : links) {
+			if (link.hwnode == node1) {
+            	found.add(link.bus);
+            }
+        }
+        while (found.size() > 0) {
+        	System.out.println("found " + found);
+        	HwNode curr = found.remove(0);
+            for (HwLink link : links) {
+            	//System.out.println("LINK " + link.hwnode.getName() + " " + link.bus.getName());
+            	if (curr == link.bus) {
+            		
+                	if (link.hwnode.getName().equals(firewallNode.getName())) {
+                        return true;
+                    }
+                    if (!done.contains(link.hwnode) && !found.contains(link.hwnode) && link.hwnode instanceof HwBridge) {
+                    	found.add(link.hwnode);
+                    }
+                } else if (curr == link.hwnode) {
+                    if (!done.contains(link.bus) && !found.contains(link.bus)) {
+                       	found.add(link.bus);
+                    }
+            	}
+            }
+        	done.add(curr);
+        }
+        System.out.println("!pathExists " + t1.getName() + " " + firewallNode);
+    	return false;
+    }
 
     public TMLMapping<TGComponent> drawFirewall(TMLMapping<TGComponent> map) {
+    
+    
+    	Map<String, Integer> channelIndexMap = new HashMap<String, Integer>();
         //  
+        //Request Index indicates channel or update rules
+        //index = 0 : update rules 
+        //index = 1-n: channel
+        int index=1;
         TGComponent comp = map.getTMLModeling().getTGComponent();
         TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel) comp.getTDiagramPanel().tp;
         // TMLComponentDesignPanel tmlcdp = map.getTMLCDesignPanel();
@@ -787,6 +833,8 @@ public class GTURTLEModeling {
                 HashMap<TMLChannel, TMLChannel> outChans = new HashMap<TMLChannel, TMLChannel>();
                 if (TraceManager.devPolicy == TraceManager.TO_CONSOLE) {
                     firewallComp = new TMLCPrimitiveComponent(tmlcdp.tmlctdp.getMaxX()-100, tmlcdp.tmlctdp.getMaxY()-100, tmlcdp.tmlctdp.getMinX(), tmlcdp.tmlctdp.getMaxX(), tmlcdp.tmlctdp.getMinY(), tmlcdp.tmlctdp.getMaxY(), false, null, tcp.tmlctdp);
+                    TAttribute reqIndex = new TAttribute(2, "index", "0", 0);
+            		firewallComp.getAttributeList().add(reqIndex);
                     tcp.tmlctdp.addComponent(firewallComp, 0, 0, false, true);
                     firewallComp.setValueWithChange(firewallNode.getName());
                     firewallADP = tcp.getTMLActivityDiagramPanel(firewallNode.getName());
@@ -803,9 +851,23 @@ public class GTURTLEModeling {
                 TMLActivity act = firewall.getActivityDiagram();
 
                 TraceManager.addDev("FirewallADP " + firewallADP);
+                
+                
                 for (TMLChannel chan : channelsCopy) {
+
+                	
+
                     TMLTask orig = chan.getOriginTask();
                     TMLTask dest = chan.getDestinationTask();
+                    
+                	//If firewall does not filter these tasks, continue on                    
+                    if (!pathExists(map, firewallNode, orig) && !pathExists(map, firewallNode, dest)){
+                		toAdd.add(chan);
+                		continue;
+                	}
+                	
+                	channelIndexMap.put(chan.getName(), index);
+                	index++;
                     TMLPort origPort = chan.getOriginPort();
                     TMLPort destPort = chan.getDestinationPort();
                     TMLChannel wr = new TMLChannel(chan.getName() + "_firewallIn", chan.getReferenceObject());
@@ -979,9 +1041,13 @@ public class GTURTLEModeling {
                 loop.setInfinite(true);
                 start.addNext(loop);
                 act.addElement(loop);
-                //Add choice
+                //Add choice for update or channel
+                
+                
+                
 
                 TMLChoice choice = new TMLChoice("chooseChannel", adChoice);
+//                choice.setGuard("[channelIndex=="+channelIndexMap.get(ch.name)+"]",i-1);
                 act.addElement(choice);
                 loop.addNext(choice);
                 map.getCorrespondanceList().addCor(choice, adChoice);
@@ -1033,9 +1099,13 @@ public class GTURTLEModeling {
             }
 
         }
+        //Replace channel operator with new firewallIn and firewallOut operators
+        
         //Redo all reference objects
 
-        map.getCorrespondanceList().useDIPLOIDs();
+        //map.getCorrespondanceList().useDIPLOIDs();
+        
+        //Redo syntax checking
         return map;
     }
 
@@ -1076,12 +1146,12 @@ public class GTURTLEModeling {
     }
 
     public TMLMapping<TGComponent> autoSecure(MainGUI gui, String name, TMLMapping<TGComponent> map, TMLArchiPanel newarch) {
-        return autoSecure(gui, name, map, newarch, "100", "0", "100", true, false, false);
+        return autoSecure(gui, name, map, newarch, "100", "0", "100", true, false, false, new HashMap<String, java.util.List<String>>());
     }
 
     public TMLMapping<TGComponent> autoSecure(MainGUI gui, String name, TMLMapping<TGComponent> map, TMLArchiPanel newarch, boolean autoConf,
                                               boolean autoWeakAuth, boolean autoStrongAuth) {
-        return autoSecure(gui, name, map, newarch, "100", "0", "100", autoConf, autoWeakAuth, autoStrongAuth);
+        return autoSecure(gui, name, map, newarch, "100", "0", "100", autoConf, autoWeakAuth, autoStrongAuth,new HashMap<String, java.util.List<String>>());
     }
 
     public TMLMapping<TGComponent> autoSecure(MainGUI gui, String encComp, String overhead, String decComp) {
@@ -1092,11 +1162,11 @@ public class GTURTLEModeling {
         int arch = gui.tabs.indexOf(tmlap);
         gui.cloneRenameTab(arch, "enc");
         TMLArchiPanel newarch = (TMLArchiPanel) gui.tabs.get(gui.tabs.size() - 1);
-        return autoSecure(gui, "enc", tmap, newarch, encComp, overhead, decComp, true, false, false);
+        return autoSecure(gui, "enc", tmap, newarch, encComp, overhead, decComp, true, false, false,new HashMap<String, java.util.List<String>>());
     }
 
     public TMLMapping<TGComponent> autoSecure(MainGUI gui, String encComp, String overhead, String decComp, boolean autoConf, boolean autoWeakAuth,
-                                              boolean autoStrongAuth) {
+                                              boolean autoStrongAuth,Map<String, List<String>> selectedCpuTasks ) {
         if (tmap == null) {
             return null;
         }
@@ -1104,20 +1174,23 @@ public class GTURTLEModeling {
         int arch = gui.tabs.indexOf(tmlap);
         gui.cloneRenameTab(arch, "enc");
         TMLArchiPanel newarch = (TMLArchiPanel) gui.tabs.get(gui.tabs.size() - 1);
-        return autoSecure(gui, "enc", tmap, newarch, encComp, overhead, decComp, autoConf, autoWeakAuth, autoStrongAuth);
+        return autoSecure(gui, "enc", tmap, newarch, encComp, overhead, decComp, autoConf, autoWeakAuth, autoStrongAuth, selectedCpuTasks);
     }
 
     public TMLMapping<TGComponent> autoSecure(MainGUI gui, String name, TMLMapping<TGComponent> map, TMLArchiPanel newarch, String encComp, String
             overhead, String decComp) {
-        return autoSecure(gui, name, tmap, newarch, encComp, overhead, decComp, true, false, false);
+        return autoSecure(gui, name, tmap, newarch, encComp, overhead, decComp, true, false, false, new HashMap<String, java.util.List<String>>());
     }
 
-    public TMLMapping<TGComponent> autoSecure(MainGUI gui, String name, TMLMapping<TGComponent> map, TMLArchiPanel newarch, String encComp, String overhead, String decComp, boolean autoConf, boolean autoWeakAuth, boolean autoStrongAuth) {
+
+    public TMLMapping<TGComponent> autoSecure(MainGUI gui, String name, TMLMapping<TGComponent> map, TMLArchiPanel newarch, String encComp, String overhead, String decComp, boolean autoConf, boolean autoWeakAuth, boolean autoStrongAuth, Map<String, List<String>> selectedCpuTasks ) {
     
             
         //move to another thread
-        SecurityGeneration secgen = new SecurityGeneration(gui, name, map, newarch, encComp, overhead, decComp, autoConf, autoWeakAuth, autoStrongAuth);
-        return secgen.startThread();
+        SecurityGeneration secgen = new SecurityGeneration(gui, name, map, newarch, encComp, overhead, decComp, autoConf, autoWeakAuth, autoStrongAuth, selectedCpuTasks);
+        tmap = secgen.startThread();
+        autoMapKeys();
+        return tmap;
     }
 
 
@@ -1188,13 +1261,13 @@ public class GTURTLEModeling {
     }
 
     public void autoMapKeys() {
-        TraceManager.addDev("auto map keys");
         if (tmap == null) {
             return;
         }
         List<HwLink> links = tmap.getArch().getHwLinks();
         //Find all Security Patterns, if they don't have an associated memory at encrypt and decrypt, map them
         TMLModeling<TGComponent> tmlm = tmap.getTMLModeling();
+        
         if (tmlm.securityTaskMap == null) {
             return;
         }
@@ -1260,7 +1333,8 @@ public class GTURTLEModeling {
                             memNode.tdp.addComponent(key, memNode.x, memNode.y, true, true);
                             memNode.tdp.repaint();
                         } else {
-                            
+                             //
+                            mgui.issueError("Cannot map key in memory for " + sp.name + " on task " + t.getName(), "Key Mapping Error");
                             UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Cannot map key in memory for " + sp.name + " on task " + t.getName());
                             ce.setTDiagramPanel(tmap.getCorrespondanceList().getTG(tmap.getArch().getFirstCPU()).getTDiagramPanel());
                             ce.setTGComponent(null);
@@ -1378,6 +1452,9 @@ public class GTURTLEModeling {
         //tml2uppaal.setChoiceDeterministic(choices);
         //tml2uppaal.setSizeInfiniteFIFO(_size);
         proverif = avatar2proverif.generateProVerif(true, true, _stateReachability, _typed, allowPrivateChannelDuplication);
+        
+       // System.out.println(proverif.getStringSpec());
+        
         warnings = avatar2proverif.getWarnings();
         languageID = PROVERIF;
         mgui.setMode(MainGUI.EDIT_PROVERIF_OK);
diff --git a/src/main/java/ui/HSMGeneration.java b/src/main/java/ui/HSMGeneration.java
index 9164d5da9fe8def68586b035b91ee261a1b1f96a..61fa4cf33ae963e3267825c289ec8444c073c8a6 100644
--- a/src/main/java/ui/HSMGeneration.java
+++ b/src/main/java/ui/HSMGeneration.java
@@ -173,7 +173,7 @@ public class HSMGeneration implements Runnable {
 
         TGConnector fromStart;
         Map<String, HSMChannel> secChannels = new HashMap<String, HSMChannel>();
-        //Add a HSM for each selected CPU on the component diagram
+        //Add a HSM Task for each selected CPU on the component diagram
         for (String cpuName : selectedCpuTasks.keySet()) {
             Map<String, HSMChannel> hsmChannels = new HashMap<String, HSMChannel>();
             TMLCPrimitiveComponent hsm = new TMLCPrimitiveComponent(0, 500, tcdp.getMinX(), tcdp.getMaxX(), tcdp.getMinY(), tcdp.getMaxY(), false, null, tcdp);
@@ -210,8 +210,6 @@ public class HSMGeneration implements Runnable {
                 //
                 continue;
             }
-            //  
-            //
             for (TMLCPrimitiveComponent comp : comps) {
 
                 Map<String, HSMChannel> compChannels = new HashMap<String, HSMChannel>();
@@ -473,15 +471,9 @@ public class HSMGeneration implements Runnable {
                     }
                     TGConnectingPoint point = fromStart.getTGConnectingPointP2();
 
-                    //Set isEnc to false
-                    int yShift = 50;
-              //      TMLADActionState act = new TMLADActionState(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
-                //    act.setValue("isEnc=false");
-                  //  tad.addComponent(act, xpos, ypos + yShift, false, true);
-                    //fromStart.setP2(act.getTGConnectingPointAtIndex(0));
 
+                    int yShift = 50;
 
-                    //Add send request operator
 
                     yShift += 50;
                     TMLADSendRequest req = new TMLADSendRequest(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
@@ -493,11 +485,8 @@ public class HSMGeneration implements Runnable {
                     tad.addComponent(req, xpos, ypos + yShift, false, true);
 
 
-                    //Add connection
-                   // fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
-                  //  fromStart.setP1(act.getTGConnectingPointAtIndex(1));
                     fromStart.setP2(req.getTGConnectingPointAtIndex(0));
-                  //  tad.addComponent(fromStart, xpos, ypos, false, true);
+
 
 
                     yShift += 50;
@@ -547,9 +536,6 @@ public class HSMGeneration implements Runnable {
                     tad.setMaxPanelSize(tad.getMaxX(), tad.getMaxY() + yShift);
                     tad.repaint();
                 }
-                //for (String chan: chanNames){
-                //                        hsmChannels.put(chan, compName);
-                //}
             }
 
             int xpos = 0;
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index ed545c37dc7171a7ae0880a91dc6a2b09d6036b8..201960cee15cc6062732d79539d8ea3a3765094e 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -151,7 +151,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public JFrame frame; //Main Frame
     public Container framePanel; //Main pane
     public Container panelForTab, panelForTree; //panelForAnalysisTab; //panelForDesignTab;
-    public JSplitPane split;
+    public JSplitPane split, split1;
 
     // Multi analysis / design / deployment
     public Vector<TURTLEPanel> tabs;
@@ -346,6 +346,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             _uppaalOn, boolean _ncOn, boolean _avatarOn, boolean _proverifOn, boolean
             _avatarOnly, boolean _experimental) {
         openLast = _openLast;
+        TraceManager.addDev("openLast=" + openLast);
         turtleOn = _turtleOn;
         systemcOn = _systemcOn;
         lotosOn = _lotosOn;
@@ -524,13 +525,18 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         scrollPane.setMinimumSize(new Dimension(25, 200));
         jbp = new JBirdPanel(this);
         jbp.setPreferredSize(new Dimension(200, 200));
-        JSplitPane split1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, scrollPane, jbp);
+        split1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, scrollPane, jbp);
 
-        //split1.setLastDividerLocation(500);
+        //split1.setDividerLocation(700);
+        split1.setResizeWeight(0.1);
+        //split1.setOneTouchExpandable(true);
         //panelForTree.add(scrollPane, BorderLayout.CENTER);
 
         split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, split1, panelForTab);
         framePanel.add(split, BorderLayout.CENTER);
+        split.setDividerLocation(250);
+        split1.setResizeWeight(0.9);
+        split.setOneTouchExpandable(true);
         //split1.resetToPreferredSizes();
 
         // Creating menus
@@ -538,12 +544,14 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         frame.setJMenuBar(jmenubarturtle);
 
         // if openLast, must open the latest specification (if it exists)
-        if (ConfigurationTTool.LastOpenFileDefined) {
+        if ((ConfigurationTTool.LastOpenFileDefined) && (openLast)) {
             openLastProject();
+            dtree.update();
+            //split1.setDividerLocation(600);
+            //split.setDividerLocation(220);
         }
 
-        //split1.setLastDividerLocation(split1.getHeight() * 4 / 5);
-        //split1.setLastDividerLocation(900);
+        //
 
         // ToolBar
         //toolbarDesign = new Vector();
@@ -1738,6 +1746,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         }
 
         frame.setVisible(true);
+
+        //split1.setDividerLocation(0.90);
+        //split.setDividerLocation(0.2);
+
+
+
     }
 
     public void newTurtleModeling() {
@@ -3530,6 +3544,13 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return false;
     }
 
+	public void issueError(String error, String title){
+		JOptionPane.showMessageDialog(frame,
+                    error,
+                    title,
+                    JOptionPane.INFORMATION_MESSAGE);
+	}
+
     public boolean checkModelingSyntax(TURTLEPanel tp, boolean automatic) {
         //String msg = "";
         boolean b = false;
@@ -8524,16 +8545,24 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
 
     public Vector<SysCAMSComponentTaskDiagramPanel> getListSysCAMSPanel() {
     	Vector<SysCAMSComponentTaskDiagramPanel> syscamsDiagram = new Vector<SysCAMSComponentTaskDiagramPanel>(); 
-        TURTLEPanel tp = getTURTLEPanel("SystemC_AMS");
-        Vector<TDiagramPanel> ps = tp.panels;
-        for (TDiagramPanel panel : ps) {
-            if (panel instanceof SysCAMSComponentTaskDiagramPanel) {
-                syscamsDiagram.add((SysCAMSComponentTaskDiagramPanel) panel);
-            }
-        }
-        if (syscamsDiagram.size() == 0) 
-            System.err.println("No SysCAMS Panel found : MainGUI.getSysCAMSPanel()");
-        return syscamsDiagram;
+    	TURTLEPanel tp = getTURTLEPanel("SystemC_AMS");
+    	if (tp != null) {
+    		Vector<TDiagramPanel> ps = tp.panels;
+    		for (TDiagramPanel panel : ps) {
+    			if (panel instanceof SysCAMSComponentTaskDiagramPanel) {
+    				syscamsDiagram.add((SysCAMSComponentTaskDiagramPanel) panel);
+    			}
+    		}
+    		if (syscamsDiagram.size() == 0) 
+    			System.err.println("No SysCAMS Panel found : MainGUI.getSysCAMSPanel()");
+    		return syscamsDiagram;
+    	} else {
+    		JDialog msg = new JDialog();
+    		msg.setLocationRelativeTo(null);
+    		JOptionPane.showMessageDialog(msg, "There is no Systemc-AMS panel. Please add one.", "Warning !",
+    				JOptionPane.WARNING_MESSAGE);
+    		return null;
+    	}
     }
     
     public SysCAMSComponentTaskDiagramPanel getFirstSysCAMSPanelFound() {
diff --git a/src/main/java/ui/SecurityGeneration.java b/src/main/java/ui/SecurityGeneration.java
index c8a2e0b0eb76893b45a152dcadbbad3a8e7cb687..8bb011e5e40293e8fb807c93a1791dee60fa9218 100644
--- a/src/main/java/ui/SecurityGeneration.java
+++ b/src/main/java/ui/SecurityGeneration.java
@@ -46,17 +46,30 @@ public class SecurityGeneration implements Runnable {
 	String encComp;
 	String overhead;
 	String decComp;
+	Map<String, List<String>> selectedCPUTasks;
 	boolean autoConf;
 	boolean autoWeakAuth;
 	boolean autoStrongAuth;
+	int channelIndex=0;
 	
+	TMLComponentDesignPanel tmlcdp;
 	AVATAR2ProVerif avatar2proverif;
 	AvatarSpecification avatarspec;
 	ProVerifSpec proverif;
+	Map<String, HSMChannel> hsmChannels = new HashMap<String, HSMChannel>();
 	
+	Map<String, HSMChannel> secChannels = new HashMap<String, HSMChannel>();
 	
+	Map<String, Integer> channelIndexMap = new HashMap<String, Integer>();
 	
-	public SecurityGeneration(MainGUI gui, String name, TMLMapping<TGComponent> map, TMLArchiPanel newarch, String encComp, String overhead, String decComp, boolean autoConf, boolean autoWeakAuth, boolean autoStrongAuth){
+	Map<String, List<HSMChannel>> hsmChannelMap = new HashMap<String, List<HSMChannel>>();
+	
+	Map<String, String> taskHSMMap = new HashMap<String, String>();
+	List<String> hsmTasks = new ArrayList<String>();
+	
+	Map<String, String> channelSecMap = new HashMap<String, String>();
+	
+	public SecurityGeneration(MainGUI gui, String name, TMLMapping<TGComponent> map, TMLArchiPanel newarch, String encComp, String overhead, String decComp, boolean autoConf, boolean autoWeakAuth, boolean autoStrongAuth,	Map<String, List<String>> selectedCPUTasks){
 	
 		this.gui = gui;
 		this.name=name;
@@ -68,6 +81,7 @@ public class SecurityGeneration implements Runnable {
 		this.autoConf=autoConf;
 		this.autoWeakAuth = autoWeakAuth;
 		this.autoStrongAuth = autoStrongAuth;
+		this.selectedCPUTasks = selectedCPUTasks;
 	}
 	public void proverifAnalysis(TMLMapping<TGComponent> map, List<String> nonAuthChans, List<String> nonSecChans) {
         if (map == null) {
@@ -145,6 +159,7 @@ public class SecurityGeneration implements Runnable {
 		}
 		catch (Exception e){
 			TraceManager.addDev("Error in Security Generation Thread");
+			System.out.println("Error in Security Generation Thread");
 		}
 		return map;
 	}
@@ -158,9 +173,27 @@ public class SecurityGeneration implements Runnable {
         Map<TMLTask, List<String>> nonceInChannels = new HashMap<TMLTask, List<String>>();
         Map<TMLTask, List<String>> macOutChannels = new HashMap<TMLTask, List<String>>();
         Map<TMLTask, List<String>> macInChannels = new HashMap<TMLTask, List<String>>();
-        Map<TMLTask, List<String>> macNonceOutChannels = new HashMap<TMLTask, List<String>>();
-        Map<TMLTask, List<String>> macNonceInChannels = new HashMap<TMLTask, List<String>>();
-        TraceManager.addDev("mapping " + map.getSummaryTaskMapping());
+
+        Map<TMLTask, List<String>> hsmSecInChannels = new HashMap<TMLTask, List<String>>();
+        Map<TMLTask, List<String>> hsmSecOutChannels = new HashMap<TMLTask, List<String>>();  
+
+        //TraceManager.addDev("mapping " + map.getSummaryTaskMapping());
+        
+     //   Map<String, HSMChannel> secChannels = new HashMap<String, HSMChannel>();
+        Map<String, HSMChannel> hsmChannels = new HashMap<String, HSMChannel>();
+        
+        
+        for (String cpuName : selectedCPUTasks.keySet()) {
+        	for (String task: selectedCPUTasks.get(cpuName)){
+        		hsmTasks.add(task);
+        		taskHSMMap.put(task, cpuName);    
+        	}
+        	hsmChannelMap.put(cpuName, new ArrayList<HSMChannel>());
+        	
+        }
+        
+
+        //Proverif Analysis channels
         List<String> nonAuthChans = new ArrayList<String>();
         List<String> nonSecChans = new ArrayList<String>();
 
@@ -177,7 +210,7 @@ public class SecurityGeneration implements Runnable {
 
         //Create clone of Component Diagram + Activity diagrams to secure
         TGComponent tgcomp = map.getTMLModeling().getTGComponent();
-        TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel) tgcomp.getTDiagramPanel().tp;
+        tmlcdp = (TMLComponentDesignPanel) tgcomp.getTDiagramPanel().tp;
 //        TMLComponentDesignPanel tmlcdp = map.getTMLCDesignPanel();
         int ind = gui.tabs.indexOf(tmlcdp);
         if (ind == -1) {
@@ -186,9 +219,9 @@ public class SecurityGeneration implements Runnable {
         }
         String tabName = gui.getTitleAt(tmlcdp);
         gui.cloneRenameTab(ind, name);
-        TMLComponentDesignPanel t = (TMLComponentDesignPanel) gui.tabs.get(gui.tabs.size() - 1);
+        tmlcdp = (TMLComponentDesignPanel) gui.tabs.get(gui.tabs.size() - 1);
 
-        TMLComponentTaskDiagramPanel tcdp = t.tmlctdp;
+        TMLComponentTaskDiagramPanel tcdp = tmlcdp.tmlctdp;
         //Create clone of architecture panel and map tasks to it
         newarch.renameMapping(tabName, tabName + "_" + name);
 
@@ -203,6 +236,8 @@ public class SecurityGeneration implements Runnable {
             List<String> tmp8 = new ArrayList<String>();
             List<String> tmp9 = new ArrayList<String>();
             List<String> tmp10 = new ArrayList<String>();
+            
+            
             secInChannels.put(task, tmp);
             secOutChannels.put(task, tmp2);
             toSecure.put(task, tmp3);
@@ -211,13 +246,17 @@ public class SecurityGeneration implements Runnable {
             nonceOutChannels.put(task, tmp6);
             macInChannels.put(task, tmp7);
             macOutChannels.put(task, tmp8);
-            macNonceOutChannels.put(task, tmp9);
-            macNonceInChannels.put(task, tmp10);
+
+        	hsmSecInChannels.put(task, tmp9);
+        	hsmSecOutChannels.put(task, tmp10);
+            
         }
+
+        
         //With the proverif results, check which channels need to be secured
         for (TMLTask task : map.getTMLModeling().getTasks()) {
             //Check if all channel operators are secured
-            TMLActivityDiagramPanel tad = t.getTMLActivityDiagramPanel(task.getName());
+            TMLActivityDiagramPanel tad = tmlcdp.getTMLActivityDiagramPanel(task.getName());
             for (TGComponent tg : tad.getComponentList()) {
                 if (tg instanceof TMLADWriteChannel) {
                     TMLADWriteChannel writeChannel = (TMLADWriteChannel) tg;
@@ -226,49 +265,287 @@ public class SecurityGeneration implements Runnable {
                         TMLChannel chan = tmlmodel.getChannelByName(tabName + "__" + writeChannel.getChannelName());
                         //
                         if (chan != null) {
-                            if (chan.checkConf && autoConf) {
-                                //        
-                                if (nonSecChans.contains(chan.getOriginTask().getName().split("__")[1] + "__" + writeChannel.getChannelName() + "_chData") && !secInChannels.get(chan.getDestinationTask()).contains(writeChannel.getChannelName())) {
-                                    //                                                                                            if (!securePath(map, chan.getOriginTask(), chan.getDestinationTask())){
-                                    secOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
-                                    secInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
-                                    toSecure.get(chan.getOriginTask()).add(chan.getDestinationTask());
-                                    if (chan.checkAuth && autoStrongAuth) {
-                                        toSecureRev.get(chan.getDestinationTask()).add(chan.getOriginTask());
-                                        nonceOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
-                                        nonceInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
-                                    }
+                            if (chan.checkConf && autoConf && nonSecChans.contains(chan.getOriginTask().getName().split("__")[1] + "__" + writeChannel.getChannelName() + "_chData")) {
+                            	toSecure.get(chan.getOriginTask()).add(chan.getDestinationTask());
+                            	if (chan.checkAuth && autoStrongAuth) {
+                                	toSecureRev.get(chan.getDestinationTask()).add(chan.getOriginTask());
                                 }
-                            } else if (chan.checkAuth && autoWeakAuth) {
-                                if (nonAuthChans.contains(chan.getDestinationTask().getName().split("__")[1] + "__" + writeChannel.getChannelName())) {
-                                    toSecure.get(chan.getOriginTask()).add(chan.getDestinationTask());
-                                    macOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
-                                    macInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
-                                    if (autoStrongAuth) {
-                                        toSecureRev.get(chan.getDestinationTask()).add(chan.getOriginTask());
-                                        macNonceInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
-                                        macNonceOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                            	if (hsmTasks.contains(chan.getOriginTask().getName().split("__")[1])){
+                            		if (!hsmSecOutChannels.get(chan.getOriginTask()).contains(writeChannel.getChannelName())){
+                            			HSMChannel hsmchan = new HSMChannel(writeChannel.getChannelName(),  chan.getOriginTask().getName().split("__")[1], HSMChannel.SENC);
+                            			hsmChannelMap.get(taskHSMMap.get(chan.getOriginTask().getName().split("__")[1])).add(hsmchan);
+                            			hsmSecOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                            			channelSecMap.put(writeChannel.getChannelName(), "hsmSec_"+writeChannel.getChannelName());
+                            			if (chan.checkAuth && autoStrongAuth) {
+                                    		nonceOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                                    		hsmchan.nonceName="nonce_" + chan.getDestinationTask().getName().split("__")[1] + "_" + chan.getOriginTask().getName().split("__")[1];
+                                    	}
                                     }
+                            	}
+                            	else {
+                            		if (!secInChannels.get(chan.getOriginTask()).contains(writeChannel.getChannelName())) {
+                            			secOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                            			channelSecMap.put(writeChannel.getChannelName(), "autoEncrypt_"+writeChannel.getChannelName());	
+                            	        if (chan.checkAuth && autoStrongAuth) {
+                                    		nonceOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                                    	}
+                            		}
+                            	}
+                            	
+                            	if (hsmTasks.contains(chan.getDestinationTask().getName().split("__")[1])){
+                            		if (!hsmSecOutChannels.get(chan.getDestinationTask()).contains(writeChannel.getChannelName())) {
+                            			HSMChannel hsmchan = new HSMChannel(writeChannel.getChannelName(),  chan.getDestinationTask().getName().split("__")[1], HSMChannel.DEC);
+                            			hsmChannelMap.get(taskHSMMap.get(chan.getDestinationTask().getName().split("__")[1])).add(hsmchan);
+                            			hsmSecInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                            			if (chan.checkAuth && autoStrongAuth) {
+                                    		nonceInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                                    		hsmchan.nonceName="nonce_" + chan.getDestinationTask().getName().split("__")[1] + "_" + chan.getOriginTask().getName().split("__")[1];
+                                		}
+                            		}
+                            	}
+                            	else {
+                            		if (!secInChannels.get(chan.getDestinationTask()).contains(writeChannel.getChannelName())) {
+                            			secInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                            			if (chan.checkAuth && autoStrongAuth) {
+                                    	    nonceInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                                    	}
+                            		}
+                            	}                            	
+                            	
+                            } else if (chan.checkAuth && autoWeakAuth && nonAuthChans.contains(chan.getDestinationTask().getName().split("__")[1] + "__" + writeChannel.getChannelName())) {
+                                toSecure.get(chan.getOriginTask()).add(chan.getDestinationTask());
+                            	if (autoStrongAuth) {
+                                	toSecureRev.get(chan.getDestinationTask()).add(chan.getOriginTask());
                                 }
-
+                            	if (hsmTasks.contains(chan.getOriginTask().getName().split("__")[1])){
+                            		if (!hsmSecOutChannels.get(chan.getOriginTask()).contains(writeChannel.getChannelName())){
+                            			HSMChannel hsmchan = new HSMChannel(writeChannel.getChannelName(),  chan.getOriginTask().getName().split("__")[1], HSMChannel.MAC);
+                            			hsmChannelMap.get(taskHSMMap.get(chan.getOriginTask().getName().split("__")[1])).add(hsmchan);
+                            			hsmSecOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                            			channelSecMap.put(writeChannel.getChannelName(), "hsmSec_"+writeChannel.getChannelName());
+                            			if (autoStrongAuth) {
+                                    		nonceOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                                    		hsmchan.nonceName="nonce_" + chan.getDestinationTask().getName().split("__")[1] + "_" + chan.getOriginTask().getName().split("__")[1];
+                                    	}
+                                    }
+                            	}
+                            	else {
+                            		if (!macInChannels.get(chan.getOriginTask()).contains(writeChannel.getChannelName())) {
+                            			macOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                            			channelSecMap.put(writeChannel.getChannelName(), "autoEncrypt_"+writeChannel.getChannelName());	
+                            	        if (autoStrongAuth) {
+                                        	nonceOutChannels.get(chan.getOriginTask()).add(writeChannel.getChannelName());
+                                    	}
+                            		}
+                            	}
+                            	
+                            	if (hsmTasks.contains(chan.getDestinationTask().getName().split("__")[1])){
+                            		if (!hsmSecOutChannels.get(chan.getDestinationTask()).contains(writeChannel.getChannelName())) {
+                            			HSMChannel hsmchan = new HSMChannel(writeChannel.getChannelName(),  chan.getDestinationTask().getName().split("__")[1], HSMChannel.DEC);
+                            			hsmChannelMap.get(taskHSMMap.get(chan.getDestinationTask().getName().split("__")[1])).add(hsmchan);
+                            			hsmSecInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                            			if (chan.checkAuth && autoStrongAuth) {
+                                    		nonceInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                                    		hsmchan.nonceName="nonce_" + chan.getDestinationTask().getName().split("__")[1] + "_" + chan.getOriginTask().getName().split("__")[1];
+                                		}
+                            		}
+                            	}
+                            	else {
+                            		if (!secInChannels.get(chan.getDestinationTask()).contains(writeChannel.getChannelName())) {
+                            			secInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                            			if (chan.checkAuth && autoStrongAuth) {
+                                    	    nonceInChannels.get(chan.getDestinationTask()).add(writeChannel.getChannelName());
+                                    	}
+                            		}
+                            	}  
                             }
                         }
                     }
                 }
             }
         }
+        
+       // System.out.println("hsmchannelmap" + hsmChannelMap);
+        
+        
         TraceManager.addDev("macoutchans " + macOutChannels);
         TraceManager.addDev("macinchans " + macInChannels);
         TraceManager.addDev("nonsecin " + secInChannels);
         TraceManager.addDev("nonsecout " + secOutChannels);
         TraceManager.addDev("noncein " + nonceInChannels);
         TraceManager.addDev("nonceout " + nonceOutChannels);
+        
+        
+        //Add a HSM Task for each selected CPU on the component diagram, add associated channels, etc
+        for (String cpuName : selectedCPUTasks.keySet()) {
+            TMLCPrimitiveComponent hsm = new TMLCPrimitiveComponent(0, 500, tcdp.getMinX(), tcdp.getMaxX(), tcdp.getMinY(), tcdp.getMaxY(), false, null, tcdp);
+            TAttribute index = new TAttribute(2, "channelIndex", "0", 0);
+            hsm.getAttributeList().add(index);
+            tcdp.addComponent(hsm, 0, 500, false, true);
+            hsm.setValueWithChange("HSM_" + cpuName);
+            //Find all associated components
+            List<TMLCPrimitiveComponent> comps = new ArrayList<TMLCPrimitiveComponent>();
+            //Find the component to add a HSM to
+
+            for (TGComponent tg : tcdp.getComponentList()) {
+                if (tg instanceof TMLCPrimitiveComponent) {
+                    for (String compName : selectedCPUTasks.get(cpuName)) {
+                        if (tg.getValue().equals(compName)) {
+                            comps.add((TMLCPrimitiveComponent) tg);
+                            break;
+                        }
+                    }
+                } else if (tg instanceof TMLCCompositeComponent) {
+                    TMLCCompositeComponent cc = (TMLCCompositeComponent) tg;
+                    List<TMLCPrimitiveComponent> pcomps = cc.getAllPrimitiveComponents();
+                    for (TMLCPrimitiveComponent pc : pcomps) {
+                        for (String compName : selectedCPUTasks.get(cpuName)) {
+                            if (pc.getValue().equals(compName)) {
+                                comps.add(pc);
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+            if (comps.size() == 0) {
+                //System.out.println("No Components found");
+                continue;
+            }
+
+            for (TMLCPrimitiveComponent comp : comps) {
+
+                Map<String, HSMChannel> compChannels = new HashMap<String, HSMChannel>();
+                String compName = comp.getValue();
+
+                List<ChannelData> hsmChans = new ArrayList<ChannelData>();
+                ChannelData chd = new ChannelData("startHSM_" + cpuName, false, false);
+                hsmChans.add(chd);
+                for (HSMChannel hsmChan : hsmChannelMap.get(cpuName)) {
+                	if (!hsmChan.task.equals(comp.getValue())){
+                		continue;
+                	}
+                    if (!channelIndexMap.containsKey(hsmChan.name)){
+	                	channelIndexMap.put(hsmChan.name,channelIndex);
+	                	channelIndex++;
+					}   
+                    chd = new ChannelData("data_" + hsmChan.name + "_" + hsmChan.task, false, true);
+                    hsmChans.add(chd);
+                    chd = new ChannelData("retData_" + hsmChan.name + "_" + hsmChan.task, true, true);
+                    hsmChans.add(chd);
+                }
+                for (ChannelData hsmChan : hsmChans) {
+                    TMLCChannelOutPort originPort = new TMLCChannelOutPort(comp.getX(), comp.getY(), tcdp.getMinX(), tcdp.getMaxX(), tcdp.getMinY(), tcdp.getMaxX(), true, hsm, tcdp);
+                    TMLCChannelOutPort destPort = new TMLCChannelOutPort(comp.getX(), comp.getY(), tcdp.getMinX(), tcdp.getMaxX(), tcdp.getMinY(), tcdp.getMaxX(), true, comp, tcdp);
+                    originPort.commName = hsmChan.name;
+                    originPort.isOrigin = hsmChan.isOrigin;
+                    tcdp.addComponent(originPort, hsm.getX(), hsm.getY(), true, true);
+                    destPort.commName = hsmChan.name;
+                    if (!hsmChan.isChan) {
+                        originPort.typep = 2;
+                        destPort.typep = 2;
+                        originPort.setParam(0, new TType(1));
+                        destPort.setParam(0, new TType(1));
+                    }
+                    destPort.isOrigin = !hsmChan.isOrigin;
+
+                    tcdp.addComponent(destPort, comp.getX(), comp.getY(), true, true);
+
+                    TMLCPortConnector conn = new TMLCPortConnector(0, 0, tcdp.getMinX(), tcdp.getMaxX(), tcdp.getMinY(), tcdp.getMaxX(), true, null, tcdp, originPort.getTGConnectingPointAtIndex(0), destPort.getTGConnectingPointAtIndex(0), new Vector<Point>());
+                    tcdp.addComponent(conn, 0, 0, false, true);
+                }
+        	}
+        }
+        
+        
+		for (String cpuName : selectedCPUTasks.keySet()) {
+			buildHSMActivityDiagram(cpuName);
+            //Add a private bus to Hardware Accelerator with the task for hsm
+
+            //Find the CPU the task is mapped to
+            TMLArchiDiagramPanel archPanel = newarch.tmlap;
+            TMLArchiCPUNode cpu = null;
+            String refTask = "";
+            for (TGComponent tg : archPanel.getComponentList()) {
+                if (tg instanceof TMLArchiCPUNode) {
+                    if (tg.getName().equals(cpuName)) {
+                        cpu = (TMLArchiCPUNode) tg;
+                        TMLArchiArtifact art = cpu.getArtifactList().get(0);
+                        refTask = art.getReferenceTaskName();
+                        break;
+
+                    }
+                }
+            }
+
+            if (cpu == null) {
+                return;
+            }
+
+            //Add new memory
+            TMLArchiMemoryNode mem = new TMLArchiMemoryNode(cpu.getX(), archPanel.getMaxY()-400, archPanel.getMinX(), archPanel.getMaxX(), archPanel.getMinY(), archPanel.getMaxY(), true, null, archPanel);
+            archPanel.addComponent(mem, cpu.getX(), archPanel.getMaxY()-400, false, true);
+            mem.setName("HSMMemory_" + cpuName);
+            //Add Hardware Accelerator
+
+            TMLArchiHWANode hwa = new TMLArchiHWANode(cpu.getX() + 100, cpu.getY() + 100, archPanel.getMinX(), archPanel.getMaxX(), archPanel.getMinY(), archPanel.getMaxY(), true, null, archPanel);
+            archPanel.addComponent(hwa, cpu.getX() + 100, cpu.getY() + 100, false, true);
+            hwa.setName("HSM_" + cpuName);
+            //Add hsm task to hwa
+
+
+            TMLArchiArtifact hsmArt = new TMLArchiArtifact(cpu.getX() + 100, cpu.getY() + 100, archPanel.getMinX(), archPanel.getMaxX(), archPanel.getMinY(), archPanel.getMaxY(), true, hwa, archPanel);
+            archPanel.addComponent(hsmArt, cpu.getX() + 100, cpu.getY() + 100, true, true);
+            hsmArt.setFullName("HSM_" + cpuName, refTask);
+            //Add bus connecting the cpu and HWA
+
+            TMLArchiBUSNode bus = new TMLArchiBUSNode(cpu.getX() + 100, cpu.getY() + 100, archPanel.getMinX(), archPanel.getMaxX(), archPanel.getMinY(), archPanel.getMaxY(), true, null, archPanel);
+            bus.setPrivacy(1);
+            bus.setName("HSMBus_" + cpuName);
+            archPanel.addComponent(bus, cpu.getX() + 200, cpu.getY() + 200, false, true);
+
+            //Connect Bus and CPU
+            TMLArchiConnectorNode connect = new TMLArchiConnectorNode(cpu.getX() + 100, cpu.getY() + 100, archPanel.getMinX(), archPanel.getMaxX(), archPanel.getMinY(), archPanel.getMaxY(), true, null, archPanel, null, null, new Vector<Point>());
+            TGConnectingPoint p1 = bus.findFirstFreeTGConnectingPoint(true, true);
+            p1.setFree(false);
+            connect.setP2(p1);
+
+
+            TGConnectingPoint p2 = cpu.findFirstFreeTGConnectingPoint(true, true);
+            p1.setFree(false);
+            connect.setP1(p2);
+            archPanel.addComponent(connect, cpu.getX() + 100, cpu.getY() + 100, false, true);
+            //Connect Bus and HWA
+
+            connect = new TMLArchiConnectorNode(cpu.getX() + 100, cpu.getY() + 100, archPanel.getMinX(), archPanel.getMaxX(), archPanel.getMinY(), archPanel.getMaxY(), true, null, archPanel, null, null, new Vector<Point>());
+            p1 = bus.findFirstFreeTGConnectingPoint(true, true);
+            p1.setFree(false);
+            connect.setP2(p1);
+
+            p2 = hwa.findFirstFreeTGConnectingPoint(true, true);
+            p1.setFree(false);
+            connect.setP1(p2);
+
+            archPanel.addComponent(connect, cpu.getX() + 100, cpu.getY() + 100, false, true);
+            //Connect Bus and Memory
+
+            connect = new TMLArchiConnectorNode(cpu.getX() + 100, cpu.getY() + 100, archPanel.getMinX(), archPanel.getMaxX(), archPanel.getMinY(), archPanel.getMaxY(), true, null, archPanel, null, null, new Vector<Point>());
+            p1 = bus.findFirstFreeTGConnectingPoint(true, true);
+            p1.setFree(false);
+            connect.setP2(p1);
+
+            p2 = mem.findFirstFreeTGConnectingPoint(true, true);
+            p1.setFree(false);
+            connect.setP1(p2);
+            archPanel.addComponent(connect, cpu.getX() + 100, cpu.getY() + 100, false, true);
+        }
 
         //        
         //        int num=0;
         //int nonceNum=0;
         //Create reverse channels on component diagram to send nonces if they don't already exist
 
+
         for (TMLTask task : toSecureRev.keySet()) {
             TraceManager.addDev("Adding nonces to " + task.getName());
             List<TMLChannel> chans = tmlmodel.getChannelsFromMe(task);
@@ -321,12 +598,16 @@ public class SecurityGeneration implements Runnable {
                 }
             }
         }
+        
+        
+
+        
         //  }
         //Add encryption/nonces to activity diagram
         for (TMLTask task : toSecure.keySet()) {
-            String title = task.getName().split("__")[0];
+		    String title = task.getName().split("__")[0];
             TraceManager.addDev("Securing task " + task.getName());
-            TMLActivityDiagramPanel tad = t.getTMLActivityDiagramPanel(task.getName());
+            TMLActivityDiagramPanel tad = tmlcdp.getTMLActivityDiagramPanel(task.getName());
             //Get start state position, shift everything down
             int xpos = 0;
             int ypos = 0;
@@ -336,6 +617,7 @@ public class SecurityGeneration implements Runnable {
 
             //For each occurence of a write channel operator, add encryption/nonces before it
 
+
             for (String channel : secOutChannels.get(task)) {
                 Set<TGComponent> channelInstances = new HashSet<TGComponent>();
                 int yShift = 50;
@@ -385,7 +667,7 @@ public class SecurityGeneration implements Runnable {
                         }
                     }
 
-                    enc.securityContext = "autoEncrypt_" + channel;
+                    enc.securityContext = channelSecMap.get(channel);
                     enc.type = "Symmetric Encryption";
                     enc.message_overhead = overhead;
                     enc.encTime = encComp;
@@ -407,7 +689,8 @@ public class SecurityGeneration implements Runnable {
                             TraceManager.addDev("Inspecting write channel " + wChannel.getChannelName());
                             if (channel.equals(wChannel.getChannelName()) && wChannel.getSecurityContext().equals("")) {
                                 TraceManager.addDev("Securing write channel " + wChannel.getChannelName());
-                                wChannel.setSecurityContext("autoEncrypt_" + wChannel.getChannelName());
+                                wChannel.setSecurityContext(channelSecMap.get(channel));
+                                wChannel.setEncForm(true);
 
                             }
                         }
@@ -450,7 +733,7 @@ public class SecurityGeneration implements Runnable {
 
                     //If we need to receive a nonce
                     TMLADReadChannel rd = new TMLADReadChannel(0, 0, 0, 0, 0, 0, false, null, tad);
-                    if (macNonceOutChannels.get(task).contains(channel)) {
+                    if (nonceOutChannels.get(task).contains(channel)) {
                         //Receive any nonces if ensuring authenticity
                         rd = new TMLADReadChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
                         List<TMLChannel> matches = tmlmodel.getChannels(tmlc.getDestinationTask(), tmlc.getOriginTask());
@@ -476,7 +759,7 @@ public class SecurityGeneration implements Runnable {
 
                     //Add encryption operator
 
-                    enc.securityContext = "autoEncrypt_" + channel;
+                    enc.securityContext = channelSecMap.get(channel);
                     enc.type = "MAC";
                     enc.message_overhead = overhead;
                     enc.encTime = encComp;
@@ -499,7 +782,8 @@ public class SecurityGeneration implements Runnable {
                             TraceManager.addDev("Inspecting write channel " + wChannel.getChannelName());
                             if (channel.equals(wChannel.getChannelName()) && wChannel.getSecurityContext().equals("")) {
                                 TraceManager.addDev("Securing write channel " + wChannel.getChannelName());
-                                wChannel.setSecurityContext("autoEncrypt_" + wChannel.getChannelName());
+                                wChannel.setSecurityContext(channelSecMap.get(channel));
+                                wChannel.setEncForm(true);
                                 tad.repaint();
                             }
                         }
@@ -510,6 +794,330 @@ public class SecurityGeneration implements Runnable {
                     tad.setMaxPanelSize(tad.getMaxX(), tad.getMaxY() + yShift);
                 }
             }
+            for (String channel: hsmSecOutChannels.get(task)){
+           		Set<TGComponent> channelInstances = new HashSet<TGComponent>();
+				TGConnector conn = new TGConnectorTMLAD(0, 0, 0, 0, 0, 0, false, null, tad, null, null, new Vector<Point>());
+                TGConnectingPoint next = new TGConnectingPoint(null, 0, 0, false, false);     
+            	for (TGComponent tg : tad.getComponentList()) {
+                    if (tg instanceof TMLADWriteChannel) {
+                        TMLADWriteChannel writeChannel = (TMLADWriteChannel) tg;
+                        if (writeChannel.getChannelName().equals(channel) && writeChannel.getSecurityContext().equals("")) {
+                            fromStart = tad.findTGConnectorEndingAt(tg.getTGConnectingPointAtIndex(0));
+                            if (fromStart != null) {
+                                channelInstances.add(tg);
+                            }
+                        }
+                    }
+                }
+                for (TGComponent chan : channelInstances) {
+
+                	TMLADWriteChannel writeChannel = (TMLADWriteChannel) chan;
+                    String chanName = writeChannel.getChannelName();
+                    TMLChannel tmlc = tmlmodel.getChannelByName(title + "__" + chanName);
+                    writeChannel.setSecurityContext(channelSecMap.get(chanName));
+                    writeChannel.setEncForm(true);
+                    xpos = chan.getX();
+                    ypos = chan.getY();
+                    fromStart = tad.findTGConnectorEndingAt(chan.getTGConnectingPointAtIndex(0));
+                    point = fromStart.getTGConnectingPointP2();
+
+                    int yShift = 50;
+                    
+
+                    
+
+                    TMLADSendRequest req = new TMLADSendRequest(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    req.setRequestName("startHSM_" + taskHSMMap.get(task.getName().split("__")[1]));
+                    
+
+                    req.setParam(0, Integer.toString(channelIndexMap.get(chanName)));
+                    req.makeValue();
+                    tad.addComponent(req, xpos, ypos + yShift, false, true);
+
+                    fromStart.setP2(req.getTGConnectingPointAtIndex(0));
+                    //tad.addComponent(fromStart, xpos, ypos, false, true);
+
+                    //Add connection
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    fromStart.setP1(req.getTGConnectingPointAtIndex(1));
+                    
+
+                    
+                    
+                    
+                    TMLADWriteChannel wr = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+
+	
+
+                    yShift += 50;
+                    //Add write channel operator
+                    wr = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    wr.setChannelName("data_" + chanName + "_" + task.getName().split("__")[1]);
+                    wr.setEncForm(false);
+                    wr.setSecurityContext(channelSecMap.get(chanName));
+                    tad.addComponent(wr, xpos, ypos + yShift, false, true);
+
+
+                    fromStart.setP2(wr.getTGConnectingPointAtIndex(0));
+                    tad.addComponent(fromStart, xpos, ypos, false, true);
+
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    tad.addComponent(fromStart, xpos, ypos, false, true);
+                    fromStart.setP1(wr.getTGConnectingPointAtIndex(1));
+
+
+					TMLADReadChannel rd = new TMLADReadChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+					
+					TMLADWriteChannel wr2 = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+					
+                    //Receive any nonces if ensuring authenticity           
+                    if (nonceOutChannels.get(task).contains(channel)) {
+                    	//Read nonce from rec task
+                        yShift+=50;
+                        
+                        List<TMLChannel> matches = tmlmodel.getChannels(tmlc.getDestinationTask(), tmlc.getOriginTask());
+						rd = new TMLADReadChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        if (matches.size() > 0) {
+                            rd.setChannelName(matches.get(0).getName().replaceAll(title + "__", ""));
+                        } else {
+                            rd.setChannelName("nonceCh" + tmlc.getDestinationTask().getName().split("__")[1] + "_" + tmlc.getOriginTask().getName().split("__")[1]);
+                        }
+                        rd.setSecurityContext("nonce_" + tmlc.getDestinationTask().getName().split("__")[1] + "_" + tmlc.getOriginTask().getName().split("__")[1]);
+                        tad.addComponent(rd, xpos, ypos + yShift, false, true);
+                        fromStart.setP2(rd.getTGConnectingPointAtIndex(0));
+                        
+                        fromStart = new TGConnectorTMLAD(rd.getX(), rd.getY(), tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        tad.addComponent(fromStart, xpos, ypos, false, true);
+                        fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                        
+                        
+                        //Also send nonce to hsm
+                        yShift+=50;
+ 		                wr2 = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);       
+                    	wr2.setChannelName("data_" + chanName + "_" + task.getName().split("__")[1]);
+                    	wr2.setSecurityContext(channelSecMap.get(chanName));
+                    	tad.addComponent(wr2, xpos, ypos + yShift, false, true);
+                    	
+                    	TGConnectorTMLAD tmp = new TGConnectorTMLAD(wr2.getX(), wr2.getY() + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, rd.getTGConnectingPointAtIndex(1), wr2.getTGConnectingPointAtIndex(0), new Vector<Point>());
+                        tad.addComponent(tmp, xpos, ypos, false, true);
+                        
+                    	fromStart.setP2(wr2.getTGConnectingPointAtIndex(0));
+                        
+                        fromStart = new TGConnectorTMLAD(rd.getX(), rd.getY(), tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        tad.addComponent(fromStart, xpos, ypos, false, true);
+                        fromStart.setP1(wr2.getTGConnectingPointAtIndex(1));
+                        
+                        
+                        
+                        yShift += 60;
+                    }
+                    
+
+                    //Read channel operator to receive hsm data
+
+                    yShift += 60;
+                    TMLADReadChannel rd2 = new TMLADReadChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    rd2.setChannelName("retData_" + chanName + "_" + task.getName().split("__")[1]);
+                    rd2.setSecurityContext(channelSecMap.get(chanName));
+                    tad.addComponent(rd2, xpos, ypos + yShift, false, true);
+
+                    fromStart.setP2(rd2.getTGConnectingPointAtIndex(0));
+                    yShift += 50;
+
+                    //Add connector
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    tad.addComponent(fromStart, xpos, ypos, false, true);
+                    fromStart.setP1(rd2.getTGConnectingPointAtIndex(1));
+                    yShift += 50;
+
+                    //Direct the last TGConnector back to the start of the write channel operator
+
+
+                    fromStart.setP2(point);
+                    //Shift components down to make room for the added ones, and add security contexts to write channels
+                    for (TGComponent tg : tad.getComponentList()) {
+                        if (tg.getY() >= ypos && tg != wr && tg != req && tg != rd && tg!=wr2 && tg!=rd2) {
+                            tg.setCd(tg.getX(), tg.getY() + yShift);
+                        }
+                    }
+                    tad.setMaxPanelSize(tad.getMaxX(), tad.getMaxY() + yShift);
+                    tad.repaint();        
+            	}   	
+            }
+        	
+            for (String channel: hsmSecInChannels.get(task)){
+           		Set<TGComponent> channelInstances = new HashSet<TGComponent>();
+				TGConnector conn = new TGConnectorTMLAD(0, 0, 0, 0, 0, 0, false, null, tad, null, null, new Vector<Point>());
+                TGConnectingPoint next = new TGConnectingPoint(null, 0, 0, false, false);     
+            	for (TGComponent tg : tad.getComponentList()) {
+                    if (tg instanceof TMLADReadChannel) {
+                        TMLADReadChannel readChannel = (TMLADReadChannel) tg;
+                        if (readChannel.getChannelName().equals(channel) && readChannel.getSecurityContext().equals("")) {
+                            fromStart = tad.findTGConnectorEndingAt(tg.getTGConnectingPointAtIndex(0));
+                            if (fromStart != null) {
+                                channelInstances.add(tg);
+                            }
+                        }
+                    }
+                }
+                for (TGComponent chan : channelInstances) {
+                	TMLADReadChannel readChannel = (TMLADReadChannel) chan;
+                    String chanName = readChannel.getChannelName();
+                    TMLChannel tmlc = tmlmodel.getChannelByName(title + "__" + chanName);
+                    readChannel.setSecurityContext(channelSecMap.get(chanName));
+                    readChannel.setEncForm(true);
+                    xpos = chan.getX()+1;
+                    ypos = chan.getY()+1;
+                    fromStart = tad.findTGConnectorStartingAt(chan.getTGConnectingPointAtIndex(1));
+                    point = fromStart.getTGConnectingPointP2();
+
+                    int yShift = 50;
+                    
+                    
+                    
+                    
+
+                    TMLADSendRequest req = new TMLADSendRequest(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    req.setRequestName("startHSM_" + taskHSMMap.get(task.getName().split("__")[1]));
+                    
+                   
+                    
+
+                    req.setParam(0, Integer.toString(channelIndexMap.get(chanName)));
+                    req.makeValue();
+                    tad.addComponent(req, xpos, ypos + yShift, false, true);
+
+                    fromStart.setP2(req.getTGConnectingPointAtIndex(0));
+                    tad.addComponent(fromStart, xpos, ypos, false, true);
+
+                    //Add connection
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    fromStart.setP1(req.getTGConnectingPointAtIndex(1));
+                    TMLADWriteChannel wr = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+
+                    yShift += 50;
+                    //Add write channel operator
+                    wr = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    wr.setChannelName("data_" + chanName + "_" + task.getName().split("__")[1]);
+                    wr.setSecurityContext(channelSecMap.get(chanName));
+                    tad.addComponent(wr, xpos, ypos + yShift, false, true);
+
+					//Add connector between request and write
+                    fromStart.setP2(wr.getTGConnectingPointAtIndex(0));
+                    tad.addComponent(fromStart, xpos, ypos, false, true);
+
+					//Add connector between write and ???
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    tad.addComponent(fromStart, xpos, ypos, false, true);
+                    fromStart.setP1(wr.getTGConnectingPointAtIndex(1));
+
+
+
+
+
+
+ 					//If needed, forge nonce, send it to receiving task
+                    TMLADEncrypt nonce = new TMLADEncrypt(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    TMLADWriteChannel wr3 = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    TMLADWriteChannel wr2 = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    
+                    if (nonceInChannels.get(task).contains(channel)) {
+                        //Create a nonce operator and a write channel operator
+                        yShift+=60;
+                        nonce = new TMLADEncrypt(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        nonce.securityContext = "nonce_" + tmlc.getDestinationTask().getName().split("__")[1] + "_" + tmlc.getOriginTask().getName().split("__")[1];
+                        nonce.type = "Nonce";
+                        nonce.message_overhead = overhead;
+                        nonce.encTime = encComp;
+                        nonce.decTime = decComp;
+                        tad.addComponent(nonce, xpos, ypos + yShift, false, true);
+                        fromStart.setP2(nonce.getTGConnectingPointAtIndex(0));
+                        yShift += 50;
+                        
+                        wr3 = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        //Send nonce along channel, the newly created nonce channel or an existing channel with the matching sender and receiver
+                        //Find matching channels
+                        List<TMLChannel> matches = tmlmodel.getChannels(tmlc.getDestinationTask(), tmlc.getOriginTask());
+
+                        if (matches.size() > 0) {
+                            wr3.setChannelName(matches.get(0).getName().replaceAll(title + "__", ""));
+                        } else {
+                            wr3.setChannelName("nonceCh" + tmlc.getDestinationTask().getName().split("__")[1] + "_" + tmlc.getOriginTask().getName().split("__")[1]);
+                        }
+                        //send the nonce along the channel
+                        wr3.setSecurityContext("nonce_" + tmlc.getDestinationTask().getName().split("__")[1] + "_" + tmlc.getOriginTask().getName().split("__")[1]);
+                        tad.addComponent(wr3, xpos, ypos + yShift, false, true);
+                        
+                        wr3.makeValue();
+                        TGConnector tmp = new TGConnectorTMLAD(wr3.getX(), wr3.getY() + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, nonce.getTGConnectingPointAtIndex(1), wr3.getTGConnectingPointAtIndex(0), new Vector<Point>());
+                        tad.addComponent(tmp, xpos, ypos, false, true);
+                        
+                        
+                        //Also send nonce to hsm
+                        yShift+=50;
+                        wr2 = new TMLADWriteChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    	wr2.setChannelName("data_" + chanName + "_" + task.getName().split("__")[1]);
+                    	wr2.setSecurityContext("nonce_" + tmlc.getDestinationTask().getName().split("__")[1] + "_" + tmlc.getOriginTask().getName().split("__")[1]);
+                    	tad.addComponent(wr2, xpos, ypos + yShift, false, true);
+                    	
+                    	tmp = new TGConnectorTMLAD(wr2.getX(), wr2.getY() + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, wr3.getTGConnectingPointAtIndex(1), wr2.getTGConnectingPointAtIndex(0), new Vector<Point>());
+                        tad.addComponent(tmp, xpos, ypos, false, true);
+                        
+                        fromStart = new TGConnectorTMLAD(wr2.getX(), wr.getY(), tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, wr2.getTGConnectingPointAtIndex(1), null, new Vector<Point>());
+                        tad.addComponent(fromStart, xpos, ypos, false, true);
+                        //Connect created write channel operator to start of read channel operator
+                        fromStart.setP1(wr2.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(point);
+                        
+                                                
+
+                        
+                        
+                        
+                      /*  //Shift everything from the read channel on down
+                        for (TGComponent tg : tad.getComponentList()) {
+                            if (tg.getY() >= ypos && tg != nonce && tg != wr2 && tg!=wr3) {
+                                tg.setCd(tg.getX(), tg.getY() + yShift);
+                            }
+                        }*/
+                    }
+
+
+
+
+                    //Add read channel operator
+
+                    yShift += 60;
+                    TMLADReadChannel rd = new TMLADReadChannel(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    rd.setChannelName("retData_" + chanName + "_" + task.getName().split("__")[1]);
+                    rd.setSecurityContext(channelSecMap.get(chanName));
+                    rd.setEncForm(false);
+                    tad.addComponent(rd, xpos, ypos + yShift, false, true);
+
+                    fromStart.setP2(rd.getTGConnectingPointAtIndex(0));
+                    yShift += 50;
+
+                    //Add connector
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    tad.addComponent(fromStart, xpos, ypos, false, true);
+                    fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                    yShift += 50;
+
+                    //Direct the last TGConnector back to the start of the operator after the read channel
+
+
+                    fromStart.setP2(point);
+                    
+                    //Shift components down to make room for the added ones, and add security contexts to write channels
+                    for (TGComponent tg : tad.getComponentList()) {
+                        if (tg.getY() >= ypos && tg != wr && tg != req && tg != rd && tg!=wr2 && tg!=nonce && tg!=wr3) {
+                            tg.setCd(tg.getX(), tg.getY() + yShift);
+                        }
+                    }
+                    tad.setMaxPanelSize(tad.getMaxX(), tad.getMaxY() + yShift);
+                    tad.repaint();        
+            	}   	
+            }
             for (String channel : macInChannels.get(task)) {
                 //Add decryptmac after readchannel
                 int yShift = 50;
@@ -543,13 +1151,13 @@ public class SecurityGeneration implements Runnable {
 
                     TMLADReadChannel readChannel = (TMLADReadChannel) comp;
                     TraceManager.addDev("Securing read channel " + readChannel.getChannelName());
-                    readChannel.setSecurityContext("autoEncrypt_" + readChannel.getChannelName());
+                    readChannel.setSecurityContext(channelSecMap.get(readChannel.getChannelName()));
                     tad.repaint();
 
                     TMLADWriteChannel wr = new TMLADWriteChannel(0, 0, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
                     //Create nonce and send it
                     TMLChannel tmlc = tmlmodel.getChannelByName(title + "__" + channel);
-                    if (macNonceInChannels.get(task).contains(channel)) {
+                    if (nonceInChannels.get(task).contains(channel)) {
                         //Create a nonce operator and a write channel operator
                         TMLADEncrypt nonce = new TMLADEncrypt(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
                         nonce.securityContext = "nonce_" + tmlc.getDestinationTask().getName().split("__")[1] + "_" + tmlc.getOriginTask().getName().split("__")[1];
@@ -594,7 +1202,7 @@ public class SecurityGeneration implements Runnable {
                     ypos = conn.getY();
 
                     TMLADDecrypt dec = new TMLADDecrypt(xpos + 10, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
-                    dec.securityContext = "autoEncrypt_" + readChannel.getChannelName();
+                    dec.securityContext = channelSecMap.get(readChannel.getChannelName());
                     tad.addComponent(dec, dec.getX(), dec.getY(), false, true);
                     conn.setP2(dec.getTGConnectingPointAtIndex(0));
                     yShift += 60;
@@ -609,7 +1217,8 @@ public class SecurityGeneration implements Runnable {
                             TraceManager.addDev("Inspecting read channel " + readChannel.getChannelName());
                             if (channel.equals(readChannel.getChannelName()) && readChannel.getSecurityContext().equals("")) {
                                 TraceManager.addDev("Securing read channel " + readChannel.getChannelName());
-                                readChannel.setSecurityContext("autoEncrypt_" + readChannel.getChannelName());
+                                readChannel.setSecurityContext(channelSecMap.get(readChannel.getChannelName()));
+                                readChannel.setEncForm(true);
 
                             }
                         }
@@ -699,16 +1308,17 @@ public class SecurityGeneration implements Runnable {
                     //Now add the decrypt operator
                     yShift = 40;
                     TraceManager.addDev("Securing read channel " + readChannel.getChannelName());
-                    readChannel.setSecurityContext("autoEncrypt_" + readChannel.getChannelName());
+                    readChannel.setSecurityContext(channelSecMap.get(readChannel.getChannelName()));
+                    readChannel.setEncForm(true);
                     tad.repaint();
                     //Add decryption operator if it does not already exist
                     xpos = readChannel.getX();
                     ypos = readChannel.getY();
                     TMLADDecrypt dec = new TMLADDecrypt(xpos + 10, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
-                    dec.securityContext = "autoEncrypt_" + readChannel.getChannelName();
+                    dec.securityContext = channelSecMap.get(readChannel.getChannelName());
                     tad.addComponent(dec, dec.getX(), dec.getY(), false, true);
                     conn.setP2(dec.getTGConnectingPointAtIndex(0));
-                    yShift += 100;
+                    yShift += 60;
                     conn = new TGConnectorTMLAD(xpos, ypos + yShift, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, dec.getTGConnectingPointAtIndex(1), next, new Vector<Point>());
                     conn.setP1(dec.getTGConnectingPointAtIndex(1));
 
@@ -721,7 +1331,8 @@ public class SecurityGeneration implements Runnable {
                             TraceManager.addDev("Inspecting read channel " + readChannel.getChannelName());
                             if (channel.equals(readChannel.getChannelName()) && readChannel.getSecurityContext().equals("")) {
                                 TraceManager.addDev("Securing read channel " + readChannel.getChannelName());
-                                readChannel.setSecurityContext("autoEncrypt_" + readChannel.getChannelName());
+                                readChannel.setSecurityContext( channelSecMap.get(readChannel.getChannelName()));
+                                readChannel.setEncForm(true);
 
                             }
                         }
@@ -737,9 +1348,12 @@ public class SecurityGeneration implements Runnable {
                 }
             }
         }
-        GTMLModeling gtm = new GTMLModeling(t, false);
-        TMLModeling<TGComponent> newmodel = gtm.translateToTMLModeling(false, false);
-        for (TMLTask task : newmodel.getTasks()) {
+        
+        
+        
+        GTMLModeling gtm = new GTMLModeling(newarch, false);
+        map = gtm.translateToTMLMapping();
+        /*for (TMLTask task : newmodel.getTasks()) {
             task.setName(tabName + "_" + name + "__" + task.getName());
         }
         for (TMLTask task : tmlmodel.getTasks()) {
@@ -750,11 +1364,341 @@ public class SecurityGeneration implements Runnable {
             } else {
                 
             }
-        }
+        }*/
         //map.setTMLModeling(newmodel);
-        //
-        //TMLMapping newMap = gtm.translateToTMLMapping();
-        map.setTMLModeling(newmodel);
+
+//        map.setTMLModeling(newmodel);
+
         return;
 	}
+	public void buildHSMActivityDiagram(String cpuName){
+		int xpos = 0;
+        int ypos = 0;
+        TGConnector fromStart;
+		//Build HSM Activity diagram
+
+    	TMLActivityDiagramPanel tad = tmlcdp.getTMLActivityDiagramPanel("HSM_" + cpuName);
+    	if (tad ==null){
+    		System.out.println("Missing task ");
+    		return;
+    	}
+
+        TMLADStartState start = (TMLADStartState) tad.getComponentList().get(0);
+        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+
+		if (hsmChannelMap.get(cpuName).size() ==0){
+			TMLADStopState stop = new TMLADStopState(100, 100, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+            tad.addComponent(stop, 100, 100, false, true);
+
+
+			//Connect stop and start
+            fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+            fromStart.setP1(start.getTGConnectingPointAtIndex(0));
+            fromStart.setP2(stop.getTGConnectingPointAtIndex(0));
+            tad.addComponent(fromStart, 100, 100, false, true);
+            return;
+		}
+
+
+        TMLADReadRequestArg req = new TMLADReadRequestArg(300, 100, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+        tad.addComponent(req, 300, 100, false, true);
+        req.setParam(0, "channelIndex");
+        req.makeValue();
+
+        //Connect start and readrequest
+        fromStart.setP1(start.getTGConnectingPointAtIndex(0));
+        fromStart.setP2(req.getTGConnectingPointAtIndex(0));
+        tad.addComponent(fromStart, 300, 200, false, true);
+
+
+        TMLADChoice choice = new TMLADChoice(300, 200, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+        tad.addComponent(choice, 300, 200, false, true);
+
+
+        //Connect readrequest and choice
+        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+        fromStart.setP1(req.getTGConnectingPointAtIndex(1));
+        fromStart.setP2(choice.getTGConnectingPointAtIndex(0));
+        tad.addComponent(fromStart, 300, 200, false, true);
+
+
+        int xc = 150;
+            //Allows 9 channels max to simplify the diagram
+
+            //If more than 3 channels, build 2 levels of choices
+
+        if (hsmChannelMap.get(cpuName).size() > 3) {
+                TMLADChoice choice2 = new TMLADChoice(xc, 400, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                int i = 0;
+                for (HSMChannel ch : hsmChannelMap.get(cpuName)) {
+                    if (i % 3 == 0) {
+                        //Add a new choice every third channel
+                        choice2 = new TMLADChoice(xc, 250, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        tad.addComponent(choice2, xc, 400, false, true);
+                        //Connect new choice operator to top choice
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(choice.getTGConnectingPointAtIndex(i / 3 + 1));
+                        fromStart.setP2(choice2.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+                    }
+                    TMLADReadChannel rd = new TMLADReadChannel(xc, 300, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    rd.setChannelName("data_" + ch.name + "_" + ch.task);
+                    rd.setSecurityContext(channelSecMap.get(ch.name));
+                    tad.addComponent(rd, xc, 300, false, true);
+                    //Connect choice and readchannel
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    fromStart.setP1(choice2.getTGConnectingPointAtIndex(i % 3 + 1));
+                    fromStart.setP2(rd.getTGConnectingPointAtIndex(0));
+
+                    tad.addComponent(fromStart, 300, 200, false, true);
+                    TMLADWriteChannel wr = new TMLADWriteChannel(xc, 600, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    wr.setChannelName("retData_" + ch.name + "_" + ch.task);
+                    tad.addComponent(wr, xc, 600, false, true);
+                    wr.setSecurityContext(channelSecMap.get(ch.name));
+
+
+                    if (ch.secType == HSMChannel.DEC) {
+                        TMLADDecrypt dec = new TMLADDecrypt(xc, 500, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        dec.securityContext = channelSecMap.get(ch.name);
+                        tad.addComponent(dec, xc, 500, false, true);
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(dec.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(dec.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+
+                        //Connect encrypt and writechannel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(dec.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(wr.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+                    } else {
+                        TMLADEncrypt enc = new TMLADEncrypt(xc, 500, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        enc.securityContext = channelSecMap.get(ch.name);
+                        if (ch.secType == HSMChannel.SENC) {
+                            enc.type = "Symmetric Encryption";
+                        } else if (ch.secType == HSMChannel.AENC) {
+                            enc.type = "Asymmetric Encryption";
+                        } else if (ch.secType == HSMChannel.MAC) {
+                            enc.type = "MAC";
+                        } else if (ch.secType == HSMChannel.NONCE) {
+                            enc.type = "Nonce";
+                        }
+
+                        enc.message_overhead = overhead;
+                        enc.encTime = encComp;
+                        enc.decTime = decComp;
+                        enc.nonce = ch.nonceName;
+                        tad.addComponent(enc, xc, 500, false, true);
+
+                        //Connect encrypt and readchannel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(enc.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+
+                        //Connect encrypt and writechannel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(enc.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(wr.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+                        
+                        //Add Stop
+                        TMLADStopState stop = new TMLADStopState(xc, 600, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        tad.addComponent(stop, xc, 700, false, true);
+
+
+						//Connext stop and write channel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(wr.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(stop.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+
+                    }
+                    xc += 300;
+                    i++;
+                }
+            } else {
+
+                int i = 1;
+
+                for (HSMChannel ch : hsmChannelMap.get(cpuName)) {
+                
+                	//Add guard as channelindex
+                	choice.setGuard("[channelIndex=="+channelIndexMap.get(ch.name)+"]",i-1);
+                	
+                    TMLADReadChannel rd = new TMLADReadChannel(xc, 300, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    rd.setChannelName("data_" + ch.name + "_" + ch.task);
+                    rd.setSecurityContext(channelSecMap.get(ch.name));
+                    tad.addComponent(rd, xc, 300, false, true);
+
+					//Recieve plaintext data if encrypting
+					if (ch.secType != HSMChannel.DEC) {
+						rd.setEncForm(false);
+					}
+
+                    //Connect choice and readchannel
+                  
+                    fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    fromStart.setP1(choice.getTGConnectingPointAtIndex(i));
+                    fromStart.setP2(rd.getTGConnectingPointAtIndex(0));              
+                    tad.addComponent(fromStart, xc, 300, false, true);
+                    
+                    
+                    fromStart = new TGConnectorTMLAD(xc, 350, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+
+                    
+                    //If needed, receive nonce from task
+                    if (!ch.nonceName.equals("")){
+
+                   	 	tad.addComponent(fromStart, 300, 200, false, true);
+                    	
+                    	rd = new TMLADReadChannel(xc, 350, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+						rd.setChannelName("data_" + ch.name + "_" + ch.task);
+                        rd.setSecurityContext(ch.nonceName);
+                        tad.addComponent(rd, xc, 350, false, true);
+                        
+
+                    	fromStart.setP2(rd.getTGConnectingPointAtIndex(0));
+                    	
+                    	fromStart = new TGConnectorTMLAD(xc, 350, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                    	fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                    	
+                    }
+
+
+					//Send data back to task
+                    TMLADWriteChannel wr = new TMLADWriteChannel(xc, 600, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                    wr.setChannelName("retData_" + ch.name + "_" + ch.task);
+                    
+					//Return plaintext data if decrypting
+					if (ch.secType == HSMChannel.DEC) {
+						wr.setEncForm(false);
+					}
+
+                    
+                    tad.addComponent(wr, xc, 600, false, true);
+                    wr.setSecurityContext(channelSecMap.get(ch.name));
+
+
+                    if (ch.secType == HSMChannel.DEC) {
+                    	//Add Decrypt operator
+                        TMLADDecrypt dec = new TMLADDecrypt(xc, 500, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        dec.securityContext = channelSecMap.get(ch.name);
+                        tad.addComponent(dec, xc, 500, false, true);
+
+						//Connect decrypt and readchannel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(dec.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+
+                        //Connect encrypt and writechannel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(dec.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(wr.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+                        
+                         //Add Stop
+                        TMLADStopState stop = new TMLADStopState(xc, 700, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        tad.addComponent(stop, xc, 700, false, true);
+
+
+						//Connect stop and write channel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(wr.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(stop.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+                        
+                    } else {
+                        TMLADEncrypt enc = new TMLADEncrypt(xc, 500, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        enc.securityContext = channelSecMap.get(ch.name);
+                        if (ch.secType == HSMChannel.SENC) {
+                            enc.type = "Symmetric Encryption";
+                        } else if (ch.secType == HSMChannel.AENC) {
+                            enc.type = "Asymmetric Encryption";
+                        } else if (ch.secType == HSMChannel.MAC) {
+                            enc.type = "MAC";
+                        } else if (ch.secType == HSMChannel.NONCE) {
+                            enc.type = "Nonce";
+                        }
+
+                        enc.message_overhead = overhead;
+                        enc.encTime = encComp;
+                        enc.decTime = decComp;
+                        tad.addComponent(enc, xc, 500, false, true);
+
+                        //Connect encrypt and readchannel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(rd.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(enc.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+
+                        //Connect encrypt and writechannel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(enc.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(wr.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+                        
+                        //Add Stop
+                        TMLADStopState stop = new TMLADStopState(xc, 700, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
+                        tad.addComponent(stop, xc, 700, false, true);
+
+
+						//Connect stop and write channel
+                        fromStart = new TGConnectorTMLAD(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad, null, null, new Vector<Point>());
+                        fromStart.setP1(wr.getTGConnectingPointAtIndex(1));
+                        fromStart.setP2(stop.getTGConnectingPointAtIndex(0));
+                        tad.addComponent(fromStart, 300, 200, false, true);
+
+
+                    }
+
+               
+                    xc += 300;
+                    i++;
+                }
+
+            }
+
+	}
+	
+	class HSMChannel {
+        public String name;
+        public static final int SENC = 0;
+        public static final int NONCE_ENC = 1;
+        public static final int MAC = 2;
+        public static final int DEC = 3;
+        public static final int AENC = 4;
+        public static final int NONCE = 5;
+        public String task;
+        public String securityContext = "";
+        public int secType;
+        public String nonceName = "";
+
+        public HSMChannel(String n, String t, int type) {
+            name = n;
+            task = t;
+            secType = type;
+        }
+    }
+    
+    class ChannelData {
+        public String name;
+        public boolean isOrigin;
+        public boolean isChan;
+
+        public ChannelData(String n, boolean orig, boolean isCh) {
+            name = n;
+            isOrigin = orig;
+            isChan = isCh;
+        }
+
+    }
+
 }
diff --git a/src/main/java/ui/SysCAMSPanelTranslator.java b/src/main/java/ui/SysCAMSPanelTranslator.java
index dc7e1be5dce64b4de1eaec6bab04b50062591676..2e144c60afb31c04ab54715de1b891d1ee6c80a8 100644
--- a/src/main/java/ui/SysCAMSPanelTranslator.java
+++ b/src/main/java/ui/SysCAMSPanelTranslator.java
@@ -43,13 +43,15 @@ import ui.syscams.*;
 
 import java.util.*;
 
+import javax.swing.DefaultListModel;
+
 /**
  * Class SysCAMSPanelTranslator
  * Translation of semantics of SystemC-AMS Diagrams
  * Creation: 19/05/2018
  * @version 1.0 19/05/2018
  * @author Irina Kit Yan LEE
-*/
+ */
 
 public class SysCAMSPanelTranslator {
 
@@ -60,7 +62,7 @@ public class SysCAMSPanelTranslator {
 
 	public SysCAMSPanelTranslator(SysCAMSComponentTaskDiagramPanel _syscamsDiagramPanel) {
 		tgcComponents = _syscamsDiagramPanel.getComponentList();
-		
+
 		syscamsComponents = new LinkedList<SysCAMSTComponent>();
 		syscamsConnectors = new LinkedList<SysCAMSTConnector>();
 
@@ -70,38 +72,38 @@ public class SysCAMSPanelTranslator {
 	private void MakeListOfComponent(SysCAMSComponentTaskDiagramPanel syscamsDiagramPanel) {
 
 		Map<TGComponent, SysCAMSTComponent> syscamsMap = new HashMap<TGComponent, SysCAMSTComponent>();
-				
+
 		TGComponent tgc;
-        Iterator<TGComponent> iterator1 = tgcComponents.listIterator();
-        Iterator<TGComponent> iterator2 = tgcComponents.listIterator();
-        List<TGComponent> list = new ArrayList<TGComponent>();
-
-        while(iterator1.hasNext()) {
-            tgc = iterator1.next();
-            if (!(tgc instanceof TGConnector)) {
-                list.add(tgc);
-            }
-        }
-        while(iterator2.hasNext()) {
-            tgc = iterator2.next();
-            if (tgc instanceof TGConnector) {
-                list.add(tgc);
-            }
-        }	
-		
+		Iterator<TGComponent> iterator1 = tgcComponents.listIterator();
+		Iterator<TGComponent> iterator2 = tgcComponents.listIterator();
+		List<TGComponent> list = new ArrayList<TGComponent>();
+
+		while(iterator1.hasNext()) {
+			tgc = iterator1.next();
+			if (!(tgc instanceof TGConnector)) {
+				list.add(tgc);
+			}
+		}
+		while(iterator2.hasNext()) {
+			tgc = iterator2.next();
+			if (tgc instanceof TGConnector) {
+				list.add(tgc);
+			}
+		}	
+
 		for (TGComponent dp : list) {
 			if (dp instanceof SysCAMSBlockDE) {
 				SysCAMSBlockDE blockDE = (SysCAMSBlockDE) dp;
-				
+
 				String blockDEName = blockDE.getValue();
 				int periodBlock = blockDE.getPeriod();
-				
+
 				SysCAMSTBlockDE syscamsBlockDE = new SysCAMSTBlockDE(blockDEName, periodBlock);
-				
+
 				List<SysCAMSPortDE> portsDE = blockDE.getAllInternalPortsDE();
 				for (int i = 0; i < portsDE.size(); i++) {
 					SysCAMSPortDE portDE = portsDE.get(i);
-					
+
 					String portName = portDE.getPortName();
 					int periodPort = portDE.getPeriod();
 					String time = portDE.getTime();
@@ -109,9 +111,9 @@ public class SysCAMSPanelTranslator {
 					int delay = portDE.getDelay();
 					String type = portDE.getDEType();
 					int origin = portDE.getOrigin();
-					
+
 					SysCAMSTPortDE syscamsPortDE = new SysCAMSTPortDE(portName, periodPort, time, rate, delay, origin, type, syscamsBlockDE);
-					
+
 					syscamsMap.put(portDE, syscamsPortDE);
 					syscamsBlockDE.addPortDE(syscamsPortDE);
 					syscamsComponents.add(syscamsPortDE);
@@ -120,25 +122,29 @@ public class SysCAMSPanelTranslator {
 				syscamsComponents.add(syscamsBlockDE);
 			} else if (dp instanceof SysCAMSCompositeComponent) {
 				SysCAMSCompositeComponent cluster = (SysCAMSCompositeComponent) dp;
-				
+
 				String clusterName = cluster.getValue();
-				
+
 				SysCAMSTCluster syscamsCluster = new SysCAMSTCluster(clusterName);
-				
+
 				List<SysCAMSBlockTDF> blocksTDF = cluster.getAllBlockTDFComponents();
 				for (int i = 0; i < blocksTDF.size(); i++) {
 					SysCAMSBlockTDF blockTDF = blocksTDF.get(i);
-					
+
 					String blockTDFName = blockTDF.getValue();
 					int periodBlock = blockTDF.getPeriod();
 					String processCode = blockTDF.getProcessCode();
-					
-					SysCAMSTBlockTDF syscamsBlockTDF = new SysCAMSTBlockTDF(blockTDFName, periodBlock, processCode, syscamsCluster);				
-				
+					DefaultListModel<String> listStruct = blockTDF.getListStruct();
+					String nameTemplate = blockTDF.getNameTemplate();
+					String typeTemplate = blockTDF.getTypeTemplate();
+					DefaultListModel<String> listTypedef = blockTDF.getListTypedef();
+
+					SysCAMSTBlockTDF syscamsBlockTDF = new SysCAMSTBlockTDF(blockTDFName, periodBlock, processCode, listStruct, nameTemplate, typeTemplate, listTypedef, syscamsCluster);				
+
 					List<SysCAMSPortTDF> portsTDF = blockTDF.getAllInternalPortsTDF();
 					for (int j = 0; j < portsTDF.size(); j++) {
 						SysCAMSPortTDF portTDF = portsTDF.get(j);
-						
+
 						String portName = portTDF.getPortName();
 						int periodPort = portTDF.getPeriod();
 						String time = portTDF.getTime();
@@ -146,9 +152,9 @@ public class SysCAMSPanelTranslator {
 						int delay = portTDF.getDelay();
 						String type = portTDF.getTDFType();
 						int origin = portTDF.getOrigin();
-						
+
 						SysCAMSTPortTDF syscamsPortTDF = new SysCAMSTPortTDF(portName, periodPort, time, rate, delay, origin, type, syscamsBlockTDF);
-					
+
 						syscamsMap.put(portTDF, syscamsPortTDF);
 						syscamsBlockTDF.addPortTDF(syscamsPortTDF);
 						syscamsComponents.add(syscamsPortTDF);
@@ -156,7 +162,7 @@ public class SysCAMSPanelTranslator {
 					List<SysCAMSPortConverter> portsConverter = blockTDF.getAllInternalPortsConv();
 					for (int j = 0; j < portsConverter.size(); j++) {
 						SysCAMSPortConverter portConverter = portsConverter.get(j);
-						
+
 						String portName = portConverter.getPortName();
 						int periodPort = portConverter.getPeriod();
 						String time = portConverter.getTime();
@@ -164,9 +170,9 @@ public class SysCAMSPanelTranslator {
 						int delay = portConverter.getDelay();
 						String type = portConverter.getConvType();
 						int origin = portConverter.getOrigin();
-						
+
 						SysCAMSTPortConverter syscamsPortConverter = new SysCAMSTPortConverter(portName, periodPort, time, rate, delay, origin, type, syscamsBlockTDF);
-						
+
 						syscamsMap.put(portConverter, syscamsPortConverter);
 						syscamsBlockTDF.addPortConverter(syscamsPortConverter);
 						syscamsComponents.add(syscamsPortConverter);
@@ -179,10 +185,10 @@ public class SysCAMSPanelTranslator {
 				syscamsComponents.add(syscamsCluster);
 			} else if (dp instanceof SysCAMSPortConnector) {
 				SysCAMSPortConnector connector = (SysCAMSPortConnector) dp;
-			
-				TGConnectingPoint connectingPoint1 =  connector.get_p1();
-				TGConnectingPoint connectingPoint2 =  connector.get_p2();	
-	
+
+				TGConnectingPoint connectingPoint1 = connector.get_p1();
+				TGConnectingPoint connectingPoint2 = connector.get_p2();	
+
 				TGComponent owner_p1 = syscamsDiagramPanel.getComponentToWhichBelongs(connectingPoint1);
 				TGComponent owner_p2 = syscamsDiagramPanel.getComponentToWhichBelongs(connectingPoint2);
 
@@ -191,7 +197,7 @@ public class SysCAMSPanelTranslator {
 
 				SysCAMSTConnectingPoint avConnectingPoint1 = new SysCAMSTConnectingPoint(avowner_p1);
 				SysCAMSTConnectingPoint avConnectingPoint2 = new SysCAMSTConnectingPoint(avowner_p2);
-			
+
 				SysCAMSTConnector avconnector = new SysCAMSTConnector(avConnectingPoint1, avConnectingPoint2);			
 				syscamsConnectors.add(avconnector);
 			}
@@ -201,4 +207,4 @@ public class SysCAMSPanelTranslator {
 	public SysCAMSSpecification getSysCAMSSpecification() {
 		return new SysCAMSSpecification(syscamsComponents, syscamsConnectors);
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/TDiagramPanel.java b/src/main/java/ui/TDiagramPanel.java
index 1dfb0fe4201a6d6e76cf3c246a354598c459d41d..ae7d3582852078cf852dd9016aaf2a29b96eecb1 100755
--- a/src/main/java/ui/TDiagramPanel.java
+++ b/src/main/java/ui/TDiagramPanel.java
@@ -2602,6 +2602,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                     || (o instanceof SysCAMSBlockTDF && this.checkSysCAMSBlockTDFComponent((SysCAMSBlockTDF) o, name))
                     || (o instanceof SysCAMSBlockDE && this.checkSysCAMSBlockDEComponent((SysCAMSBlockDE) o, name))
                     || (o instanceof SysCAMSCompositeComponent && this.checkSysCAMSCompositeComponent((SysCAMSCompositeComponent) o, name))
+                    || (o instanceof ELNComponentNodeRef && this.checkELNComponentNodeRef((ELNComponentNodeRef) o, name))
                     || (o instanceof ELNComponentResistor && this.checkELNComponentResistor((ELNComponentResistor) o, name))
                     || (o instanceof ELNComponentCapacitor && this.checkELNComponentCapacitor((ELNComponentCapacitor) o, name))
                     || (o instanceof ELNComponentInductor && this.checkELNComponentInductor((ELNComponentInductor) o, name))
@@ -2674,6 +2675,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         	return false;
         }
 
+        public boolean checkELNComponentNodeRef(ELNComponentNodeRef o, String name) {
+        	return false;
+        }
+        
         public boolean checkELNComponentResistor(ELNComponentResistor o, String name) {
         	return false;
         }
@@ -2861,6 +2866,9 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public String findELNComponentName(String name) {
     	return this.findGoodName(name, new NameChecker() {
+    		public boolean checkELNComponentNodeRef(ELNComponentNodeRef o, String name) {
+    			return o.getValue().equals(name);
+    		}
     		public boolean checkELNComponentResistor(ELNComponentResistor o, String name) {
     			return o.getValue().equals(name);
     		}
diff --git a/src/main/java/ui/TGComponentManager.java b/src/main/java/ui/TGComponentManager.java
index 47d4eb598ab845d877c8ec507549be021a05ae42..2a8d21ad7224fb715ec5878c5f9f385a75a5852f 100644
--- a/src/main/java/ui/TGComponentManager.java
+++ b/src/main/java/ui/TGComponentManager.java
@@ -344,21 +344,23 @@ public class TGComponentManager {
     public static final int CAMS_PORT_DE = 1605;
     public static final int CAMS_PORT_CONVERTER = 1606;
     public static final int CAMS_CLUSTER = 1607;
+    public static final int CAMS_BLOCK_GPIO2VCI = 1608;
 
     // ELN
     public static final int ELN_CONNECTOR = 1610;
-    public static final int ELN_RESISTOR = 1611;
-    public static final int ELN_CAPACITOR = 1612;
-    public static final int ELN_INDUCTOR = 1613;
-    public static final int ELN_VOLTAGE_CONTROLLED_VOLTAGE_SOURCE = 1614;
-    public static final int ELN_VOLTAGE_CONTROLLED_CURRENT_SOURCE = 1615;
-    public static final int ELN_IDEAL_TRANSFORMER = 1616;
-    public static final int ELN_TRANSMISSION_LINE = 1617;
-    public static final int ELN_INDEPENDENT_VOLTAGE_SOURCE = 1618;
-    public static final int ELN_INDEPENDENT_CURRENT_SOURCE = 1619;
-    public static final int ELN_NODE_REF = 1620;
-    public static final int ELN_TDF_VOLTAGE_SINK = 1621;
-    public static final int ELN_TDF_CURRENT_SINK = 1622;
+    public static final int ELN_PORT_TERMINAL = 1611;
+    public static final int ELN_RESISTOR = 1612;
+    public static final int ELN_CAPACITOR = 1613;
+    public static final int ELN_INDUCTOR = 1614;
+    public static final int ELN_VOLTAGE_CONTROLLED_VOLTAGE_SOURCE = 1615;
+    public static final int ELN_VOLTAGE_CONTROLLED_CURRENT_SOURCE = 1616;
+    public static final int ELN_IDEAL_TRANSFORMER = 1617;
+    public static final int ELN_TRANSMISSION_LINE = 1618;
+    public static final int ELN_INDEPENDENT_VOLTAGE_SOURCE = 1619;
+    public static final int ELN_INDEPENDENT_CURRENT_SOURCE = 1620;
+    public static final int ELN_NODE_REF = 1621;
+    public static final int ELN_TDF_VOLTAGE_SINK = 1622;
+    public static final int ELN_TDF_CURRENT_SINK = 1623;
     
     // SMD diagram
     public static final int PROSMD_START_STATE = 2000;
@@ -1277,7 +1279,13 @@ public class TGComponentManager {
             case CAMS_CLUSTER:
             	tgc = new SysCAMSCompositeComponent(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
             	break;
+            case CAMS_BLOCK_GPIO2VCI:
+            	tgc = new SysCAMSBlockGPIO2VCI(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
             // ELN
+            case ELN_PORT_TERMINAL:
+            	tgc = new ELNPortTerminal(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
+            	break;
             case ELN_RESISTOR:
             	tgc = new ELNComponentResistor(x, y, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, null, tdp);
             	break;	
@@ -1710,10 +1718,14 @@ public class TGComponentManager {
         	return CAMS_PORT_CONVERTER;
         } else if (tgc instanceof SysCAMSCompositeComponent) {
         	return CAMS_CLUSTER;
+        } else if (tgc instanceof SysCAMSBlockGPIO2VCI) {
+        	return CAMS_BLOCK_GPIO2VCI;
 
         	// ELN
         } else if (tgc instanceof ELNConnector) {
         	return ELN_CONNECTOR;	
+        } else if (tgc instanceof ELNPortTerminal) {
+        	return ELN_PORT_TERMINAL;	
         } else if (tgc instanceof ELNComponentResistor) {
         	return ELN_RESISTOR;
         } else if (tgc instanceof ELNComponentCapacitor) {
@@ -1732,11 +1744,11 @@ public class TGComponentManager {
         	return ELN_INDEPENDENT_VOLTAGE_SOURCE;
         } else if (tgc instanceof ELNComponentIndependentCurrentSource) {
         	return ELN_INDEPENDENT_CURRENT_SOURCE;
-	} else if (tgc instanceof ELNComponentNodeRef) {
+        } else if (tgc instanceof ELNComponentNodeRef) {
         	return ELN_NODE_REF;
-	} else if (tgc instanceof ELNComponentVoltageSinkTDF) {
+        } else if (tgc instanceof ELNComponentVoltageSinkTDF) {
         	return ELN_TDF_VOLTAGE_SINK;
-	} else if (tgc instanceof ELNComponentCurrentSinkTDF) {
+        } else if (tgc instanceof ELNComponentCurrentSinkTDF) {
         	return ELN_TDF_CURRENT_SINK;
         	
         	// Others
diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java
index 642ba2194436f4d901954755961f438bfb3bceb2..c9dde824bc8635101495a93101f243c96a96489d 100644
--- a/src/main/java/ui/TGUIAction.java
+++ b/src/main/java/ui/TGUIAction.java
@@ -284,6 +284,7 @@ public class TGUIAction extends AbstractAction {
     public static final int CAMS_PORT_CONVERTER = 479;
     public static final int CAMS_CLUSTER = 480;
     public static final int CAMS_GENCODE = 481;
+    public static final int CAMS_BLOCK_GPIO2VCI = 497;
     
     // ELN
     public static final int ELN_EDIT = 482;
@@ -654,7 +655,7 @@ public class TGUIAction extends AbstractAction {
     public static final int MOVE_ENABLED = 463;
     public static final int FIRST_DIAGRAM = 464;
     
-    public static final int NB_ACTION = 497;
+    public static final int NB_ACTION = 498;
 
     private static final TAction [] actions = new TAction[NB_ACTION];
 
@@ -1157,7 +1158,8 @@ public class TGUIAction extends AbstractAction {
         actions[CAMS_PORT_CONVERTER] = new TAction("C-AMS-port-converter", "Add a converter port", IconManager.imgic8003, IconManager.imgic8003, "Converter port", "Add a converter port to the currently opened SystemC-AMS Diagram", 0);
         actions[CAMS_CLUSTER] = new TAction("C-AMS-cluster", "Add a cluster", IconManager.imgic8006, IconManager.imgic8006, "Cluster", "Add a cluster to the currently opened SystemC-AMS Diagram", 0);
         actions[CAMS_GENCODE] = new TAction("GENCODE", "GENCODE",IconManager.imgic94, IconManager.imgic94, "Generate SystemC-AMS code", "SystemC-AMS diagram without check syntax", 0);
-        
+        actions[CAMS_BLOCK_GPIO2VCI] = new TAction("C-AMS-block-GPIO2VCI", "Add a block GPIO2VCI",IconManager.imgic8009, IconManager.imgic8009, "GPIO2VCI block", "Add a GPIO2VCI block to the currently opened SystemC-AMS Diagram", 0);
+
         // ELN
         actions[ELN_EDIT] = new TAction("add-action-eln", "Action state", IconManager.imgic100, IconManager.imgic101, "Action state", "Add an action state to the currently opened ELN diagram", 0);
         actions[ELN_CONNECTOR] = new TAction("eln-connector", "Add a connection", IconManager.imgic202, IconManager.imgic202, "Connector", "Connects two block of the currently opened ELN Diagram", 0);
diff --git a/src/main/java/ui/avatarbd/AvatarBDBlock.java b/src/main/java/ui/avatarbd/AvatarBDBlock.java
index 53d55718ebd963376ae567bfd322f5252ba80946..deda218d01c4b860558ff5c975783172cd8e899c 100644
--- a/src/main/java/ui/avatarbd/AvatarBDBlock.java
+++ b/src/main/java/ui/avatarbd/AvatarBDBlock.java
@@ -50,9 +50,12 @@ import ui.*;
 import ui.avatarsmd.AvatarSMDPanel;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarBlock;
+import ui.window.JDialogIDAndStereotype;
 
 import javax.swing.*;
 import java.awt.*;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.LinkedList;
 
@@ -70,9 +73,14 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
     private static String GLOBAL_CODE_INFO = "(block code)";
 
     private int textY1 = 3;
+
     private static String stereotype = "block";
     private static String stereotypeCrypto = "cryptoblock";
 
+    protected static ArrayList<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock"));
+    protected static ArrayList<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK));
+    private int typeStereotype = 0; // <<block>> by default
+
     private int maxFontSize = 12;
     private int minFontSize = 4;
     private int currentFontSize = -1;
@@ -87,7 +95,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
     private int iconSize = 15;
     private boolean iconIsDrawn = false;
 
-    private boolean isCryptoBlock = false;
+
 
 
     // TAttribute, AvatarMethod, AvatarSignal
@@ -178,7 +186,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         graph.drawRect(this.x, this.y, this.width, this.height);
 
         // Draw inner rectangle
-        graph.setColor(ColorManager.AVATAR_BLOCK);
+        //graph.setColor(ColorManager.AVATAR_BLOCK);
+        graph.setColor(BLOCK_TYPE_COLOR.get(typeStereotype));
         graph.fillRect(this.x + 1, this.y + 1, this.width - 1, this.height - 1);
         graph.setColor(c);
 
@@ -202,11 +211,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
         Font font = graph.getFont();
 
-        String ster;
-        if (!this.isCryptoBlock)
-            ster = "<<" + stereotype + ">>";
-        else
-            ster = "<<" + stereotypeCrypto + ">>";
+
+        String ster = BLOCK_TYPE_STR.get(typeStereotype);
 
         if (this.rescaled && !this.tdp.isScaled()) {
             this.rescaled = false;
@@ -260,7 +266,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
             graph.drawString(ster, this.x + (this.width - w) / 2, this.y + h);
         else {
             // try to draw with "..." instead
-            if (!this.isCryptoBlock)
+            if (!this.isCryptoBlock())
                 ster = stereotype;
             else
                 ster = stereotypeCrypto;
@@ -567,45 +573,84 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         }
         // On the name ?
         if ((limitName == -1 && _y <= y + 2 * currentFontSize) || _y < limitName) {
+            JDialogIDAndStereotype dialog = new JDialogIDAndStereotype(frame, "Setting Block ID", BLOCK_TYPE_STR.toArray(new String[0]), getValue
+                    (), typeStereotype,  BLOCK_TYPE_COLOR.toArray(new Color[0]), ColorManager.AVATAR_BLOCK);
+            //dialog.setSize(400, 300);
+            GraphicLib.centerOnParent(dialog, 400, 300);
+            // dialog.show(); // blocked until dialog has been closed
             oldValue = value;
+            dialog.setVisible(true);
 
-            //String text = getName() + ": ";
-            String s = (String) JOptionPane.showInputDialog(frame, "Block name",
-                    "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101,
-                    null,
-                    getValue());
+            if (dialog.hasBeenCancelled()) {
+                return false;
+            }
+
+            String s = dialog.getName();
 
-            if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
+            if ((s != null) && (s.length() > 0)){
                 //boolean b;
-                if (!TAttribute.isAValidId(s, false, false)) {
+                if (!s.equals(oldValue)) {
+                    if (!TAttribute.isAValidId(s, false, false)) {
+                        JOptionPane.showMessageDialog(frame,
+                                "Could not change the name of the Block: the new name is not a valid name",
+                                "Error",
+                                JOptionPane.INFORMATION_MESSAGE);
+                        return false;
+                    }
+
+                    if (!tdp.isAvatarBlockNameUnique(s)) {
+                        JOptionPane.showMessageDialog(frame,
+                                "Could not change the name of the Block: the new name is already in use",
+                                "Error",
+                                JOptionPane.INFORMATION_MESSAGE);
+                        return false;
+                    }
+
+                    setValue(s);
+                    recalculateSize();
+
+                }
+
+                /*if (!(tdp.actionOnDoubleClick(this))) {
                     JOptionPane.showMessageDialog(frame,
-                            "Could not change the name of the Block: the new name is not a valid name",
+                            "Could not change the name of the Requirement: this name is already in use",
                             "Error",
                             JOptionPane.INFORMATION_MESSAGE);
+                    setValue(oldValue);
                     return false;
-                }
+                }*/
+
+                // Setting stereotype
+                s = dialog.getStereotype().trim();
 
-                if (!tdp.isAvatarBlockNameUnique(s)) {
+                if (!TAttribute.isAValidId(s, false, false)) {
                     JOptionPane.showMessageDialog(frame,
-                            "Could not change the name of the Block: the new name is already in use",
+                            "Could not use the new stereotype: the new stereotype name is not valid",
                             "Error",
                             JOptionPane.INFORMATION_MESSAGE);
                     return false;
                 }
 
-                setValue(s);
-                recalculateSize();
+                int rgb = dialog.getColor();
 
-                if (tdp.actionOnDoubleClick(this)) {
-                    return true;
+                TraceManager.addDev("RGBColor:" + rgb + " vs default color:" + ColorManager.AVATAR_BLOCK.getRGB());
+
+                addStereotype(s, rgb);
+
+                TraceManager.addDev("My stereotype=" + BLOCK_TYPE_STR.get(typeStereotype) + " color=" + BLOCK_TYPE_COLOR.get(typeStereotype).getRGB());
+
+
+                if (isCryptoBlock()) {
+                    addCryptoElements();
                 } else {
-                    JOptionPane.showMessageDialog(frame,
-                            "Could not change the name of the Block: frame error",
-                            "Error",
-                            JOptionPane.INFORMATION_MESSAGE);
-                    setValue(oldValue);
+                    removeCryptoElements();
                 }
+
+                return true;
+
             }
+
+
             return false;
         }
 
@@ -802,7 +847,12 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
-        sb.append("<CryptoBlock value=\"" + isCryptoBlock + "\" />\n");
+        sb.append("<blockType data=\"");
+        sb.append(BLOCK_TYPE_STR.get(typeStereotype));
+        sb.append("\" color=\"");
+        sb.append(BLOCK_TYPE_COLOR.get(typeStereotype).getRGB());
+        sb.append("\" />\n");
+        sb.append("<CryptoBlock value=\"" + isCryptoBlock() + "\" />\n");
         for (TAttribute a : this.myAttributes) {
             sb.append("<Attribute access=\"");
             sb.append(a.getAccess());
@@ -881,7 +931,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
                             if (elt.getTagName().equals("CryptoBlock")) {
                                 crypt = elt.getAttribute("value");
                                 if (crypt.compareTo("true") == 0) {
-                                    isCryptoBlock = true;
+
                                 }
                             }
                             if (elt.getTagName().equals("Attribute")) {
@@ -909,6 +959,30 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
                                     this.myAttributes.add(ta);
                                 }
                             }
+                            if (elt.getTagName().equals("blockType")) {
+                                //
+                                s = elt.getAttribute("data");
+                                String tmp3 = elt.getAttribute("color");
+                                TraceManager.addDev("stereotype=" + s + " color=" + tmp3);
+                                int rgb = ColorManager.AVATAR_REQUIREMENT_TOP.getRGB();
+                                try {
+                                    rgb = Integer.decode(tmp3).intValue();
+                                } catch (Exception e) {
+                                }
+                                if (s.equals("null")) {
+                                    typeStereotype = 0;
+                                } else {
+                                    try {
+                                        typeStereotype = Integer.decode(s).intValue(); // default stereo: old way
+                                    } catch (Exception e) {
+                                        addStereotype(s, rgb);
+                                    }
+                                }
+                                if (typeStereotype > (BLOCK_TYPE_STR.size() - 1)) {
+                                    typeStereotype = 0;
+                                }
+
+                            }
                             if (elt.getTagName().equals("Method")) {
                                 //
                                 method = elt.getAttribute("value");
@@ -925,7 +999,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
                                 //TraceManager.addDev("Method = " + method + ". Starting with aencrypt?");
                                 if (method.startsWith("bool verifyMAC(")) {
-                                    isCryptoBlock = true;
+                                    typeStereotype = 1;
+
                                     //TraceManager.addDev("Add crypto methods");
                                     //addCryptoElements();
                                 }
@@ -988,6 +1063,34 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
     }
 
+    public boolean addStereotype(String s, int rgb) {
+        TraceManager.addDev("Adding stereotype for " + s + " with color " + rgb);
+        int index = -1;
+        String sLower = s.toLowerCase();
+        for (int i=0; i<BLOCK_TYPE_STR.size(); i++) {
+            if (BLOCK_TYPE_STR.get(i).toLowerCase().compareTo(sLower) == 0) {
+                index = i;
+                break;
+            }
+        }
+
+        // Found stereotype
+        if (index != -1) {
+            typeStereotype = index;
+            if (index > 0) {
+                BLOCK_TYPE_COLOR.set(index, new Color(rgb));
+            }
+            return false;
+
+            // Must add a new stereotype
+        } else {
+            BLOCK_TYPE_STR.add(s);
+            BLOCK_TYPE_COLOR.add(new Color(rgb));
+            typeStereotype = BLOCK_TYPE_STR.size()-1;
+            return true;
+        }
+    }
+
     public String getBlockName() {
         return value;
     }
@@ -1229,18 +1332,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
     }
 
     public boolean isCryptoBlock() {
-        return isCryptoBlock;
+        return typeStereotype == 1;
     }
 
     public void removeCryptoElements() {
-        isCryptoBlock = false;
+        typeStereotype = 0;
 
         for (String method : AvatarMethod.cryptoMethods)
             this.removeMethodIfApplicable(method);
     }
 
     public void addCryptoElements() {
-        isCryptoBlock = true;
+        typeStereotype = 1;
 
         for (String method : AvatarMethod.cryptoMethods)
             this.addMethodIfApplicable(method);
diff --git a/src/main/java/ui/avatardd/ADDClusterNode.java b/src/main/java/ui/avatardd/ADDClusterNode.java
index 5bdfbec56b43b4a9a2f2873deca2c337cd96bbc1..2ad962dc9e818257d2e4ea916ea054f541521a10 100644
--- a/src/main/java/ui/avatardd/ADDClusterNode.java
+++ b/src/main/java/ui/avatardd/ADDClusterNode.java
@@ -50,11 +50,11 @@ import javax.swing.*;
 import java.awt.*;
 
 /**
-* Class ADDClusterNode
-* Node. To be used in Avatar deployment diagrams.
-* Creation: 18/06/2018
-* @version 1.0 18/06/2018
-* @author Irina Kit Yan LEE
+ * Class ADDClusterNode
+ * Node. To be used in Avatar deployment diagrams.
+ * Creation: 18/06/2018
+ * @version 1.0 18/06/2018
+ * @author Irina Kit Yan LEE
  */
 
 public class ADDClusterNode extends ADDNode implements WithAttributes {
@@ -63,22 +63,22 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 	private int derivationx = 2;
 	private int derivationy = 3;
 	private String stereotype = "SystemC-AMS Cluster";
-    private int currentFontSize = -1;
-    private int textX = 15; // border for ports
-	
+	private int currentFontSize = -1;
+	private int textX = 15; // border for ports
+
 	private int index = 0;
-	
+
 	public ADDClusterNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-		
+
 		width = 250;
 		height = 200;
 		minWidth = 150;
 		minHeight = 100;
-		
+
 		nbConnectingPoint = 16;
 		connectingPoint = new TGConnectingPoint[16];
-		
+
 		connectingPoint[0] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.0);
 		connectingPoint[1] = new ADDConnectingPoint(this, 0, 0, false, true, 0.5, 0.0);
 		connectingPoint[2] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.0);
@@ -87,7 +87,7 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		connectingPoint[5] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 1.0);
 		connectingPoint[6] = new ADDConnectingPoint(this, 0, 0, false, true, 0.5, 1.0);
 		connectingPoint[7] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 1.0);
-		
+
 		connectingPoint[8] = new ADDConnectingPoint(this, 0, 0, false, true, 0.25, 0.0);
 		connectingPoint[9] = new ADDConnectingPoint(this, 0, 0, false, true, 0.75, 0.0);
 		connectingPoint[10] = new ADDConnectingPoint(this, 0, 0, false, true, 0.0, 0.25);
@@ -96,39 +96,39 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		connectingPoint[13] = new ADDConnectingPoint(this, 0, 0, false, true, 1.0, 0.75);
 		connectingPoint[14] = new ADDConnectingPoint(this, 0, 0, false, true, 0.25, 1.0);
 		connectingPoint[15] = new ADDConnectingPoint(this, 0, 0, false, true, 0.75, 1.0);
-		
+
 		addTGConnectingPointsComment();
-		
+
 		nbInternalTGComponent = 0;
-		
+
 		moveable = true;
 		multieditable = true;
 		editable = true;
 		removable = true;
 		userResizable = true;
-		
+
 		name = tdp.findNodeName("Cluster");
-        value = "name";
+		value = "name";
 	}
-	
+
 	public void internalDrawing(Graphics g) {
 		Color c = g.getColor();
 		g.draw3DRect(x, y, width, height, true);
-		
+
 		// Top lines
 		g.drawLine(x, y, x + derivationx, y - derivationy);
 		g.drawLine(x + width, y, x + width + derivationx, y - derivationy);
 		g.drawLine(x + derivationx, y - derivationy, x + width + derivationx, y - derivationy);
-		
+
 		// Right lines
 		g.drawLine(x + width, y + height, x + width + derivationx, y - derivationy + height);
 		g.drawLine(x + derivationx + width, y - derivationy, x + width + derivationx, y - derivationy + height);
-		
+
 		// Filling color
 		g.setColor(Color.lightGray);
 		g.fill3DRect(x+1, y+1, width-1, height-1, true);
 		g.setColor(c);
-		
+
 		// Strings
 		String ster = "<<" + stereotype + ">>";
 		int w  = g.getFontMetrics().stringWidth(ster);
@@ -138,12 +138,12 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		g.setFont(f);
 		w  = g.getFontMetrics().stringWidth(name);
 		g.drawString(name, x + (width - w)/2, y + textY2);
-		
+
 		// Icon
 		g.drawImage(IconManager.imgic8006.getImage(), x + 4, y + 4, null);
 		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
 	}
-	
+
 	public TGComponent isOnOnlyMe(int x1, int y1) {
 		Polygon pol = new Polygon();
 		pol.addPoint(x, y);
@@ -157,63 +157,66 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		}
 		return null;
 	}
-	
+
 	public String getStereotype() {
 		return stereotype;
 	}
-	
+
 	public String getNodeName() {
 		return name;
 	}
-	
+
 	public int getIndex() {
 		return index;
 	}
-	
+
 	public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
 		int i;
 		MainGUI mgui = getTDiagramPanel().getMainGUI();
-		
+
 		// On the name ?
-        if (_y <= (y + currentFontSize + textX)) {
-            String s = (String)JOptionPane.showInputDialog(frame, "Name:", "Setting component name",
-                                                           JOptionPane.PLAIN_MESSAGE, IconManager.imgic100,
-                                                           null,
-                                                           getName());
-            if ((s != null) && (s.length() > 0)) {
-                if (!TAttribute.isAValidId(s, false, false)) {
-                    JOptionPane.showMessageDialog(frame,
-                                                  "Could not change the name of the component: the new name is not a valid name",
-                                                  "Error",
-                                                  JOptionPane.INFORMATION_MESSAGE);
-                    return false;
-                }
-                setName(s);
-    			setComponentName(s);
-                setValueWithChange(s);
-                return true;
-            }
-            return false;
-        }
-        for (i = 0; i < mgui.getListSysCAMSPanel().size(); i++) {
-        	SysCAMSComponentTaskDiagramPanel tdp = mgui.getListSysCAMSPanel().get(i);
-        	if (tdp.getCompositeComponent().getValue().equals(getName())) {
-        		mgui.selectTab(tdp);
-        		return true;
-        	}
-        }
-        
-        JOptionPane.showMessageDialog(frame,
-                "Could not find a SystemC-AMS Component Diagram that correspond to the name : " + getName(),
-                "Warning message",
-                JOptionPane.WARNING_MESSAGE);
-        return false;
+		if (_y <= (y + currentFontSize + textX)) {
+			String s = (String)JOptionPane.showInputDialog(frame, "Name:", "Setting component name",
+					JOptionPane.PLAIN_MESSAGE, IconManager.imgic100,
+					null,
+					getName());
+			if ((s != null) && (s.length() > 0)) {
+				if (!TAttribute.isAValidId(s, false, false)) {
+					JOptionPane.showMessageDialog(frame,
+							"Could not change the name of the component: the new name is not a valid name",
+							"Error",
+							JOptionPane.INFORMATION_MESSAGE);
+					return false;
+				}
+				setName(s);
+				setComponentName(s);
+				setValueWithChange(s);
+				return true;
+			}
+			return false;
+		}
+
+		if (mgui.getListSysCAMSPanel() != null) {
+			for (i = 0; i < mgui.getListSysCAMSPanel().size(); i++) {
+				SysCAMSComponentTaskDiagramPanel tdp = mgui.getListSysCAMSPanel().get(i);
+				if (tdp.getCompositeComponent().getValue().equals(getName())) {
+					mgui.selectTab(tdp);
+					return true;
+				}
+			}
+		}
+
+		JOptionPane.showMessageDialog(frame,
+				"Could not find a SystemC-AMS Component Diagram that correspond to the name : " + getName(),
+				"Warning message",
+				JOptionPane.WARNING_MESSAGE);
+		return false;
 	}
-	
+
 	public int getType() {
 		return TGComponentManager.ADD_CLUSTERNODE;
 	}
-	
+
 	protected String translateExtraParam() {
 		StringBuffer sb = new StringBuffer("<extraparam>\n");
 		sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name);
@@ -223,14 +226,14 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		sb.append("</extraparam>\n");
 		return new String(sb);
 	}
-	
+
 	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
 		try {
 			NodeList nli;
 			Node n1, n2;
 			Element elt;
 			String sstereotype = null, snodeName = null;
-			
+
 			for(int i=0; i<nl.getLength(); i++) {
 				n1 = nl.item(i);
 				if (n1.getNodeType() == Node.ELEMENT_NODE) {
@@ -260,11 +263,11 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 			throw new MalformedModelingException();
 		}
 	}
-	
+
 	public int getDefaultConnector() {
 		return TGComponentManager.ADD_CONNECTOR;
 	}
-	
+
 	public String getAttributes() {
 		String attr = "";
 		attr += "index = " + index + "\n";
diff --git a/src/main/java/ui/avatarrd/AvatarRDPanel.java b/src/main/java/ui/avatarrd/AvatarRDPanel.java
index 24d08812b13d0e62f9df59f7f854e8d8bfd2f12c..461517ed8ecab1b98e06fde6746a513768117a94 100755
--- a/src/main/java/ui/avatarrd/AvatarRDPanel.java
+++ b/src/main/java/ui/avatarrd/AvatarRDPanel.java
@@ -1,26 +1,26 @@
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
+ *
  * ludovic.apvrille AT enst.fr
- * 
+ *
  * This software is a computer program whose purpose is to allow the
  * edition of TURTLE analysis, design and deployment diagrams, to
  * allow the generation of RT-LOTOS or Java code from this diagram,
  * and at last to allow the analysis of formal validation traces
  * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
  * from INRIA Rhone-Alpes.
- * 
+ *
  * This software is governed by the CeCILL  license under French law and
  * abiding by the rules of distribution of free software.  You can  use,
  * modify and/ or redistribute the software under the terms of the CeCILL
  * license as circulated by CEA, CNRS and INRIA at the following URL
  * "http://www.cecill.info".
- * 
+ *
  * As a counterpart to the access to the source code and  rights to copy,
  * modify and redistribute granted by the license, users are provided only
  * with a limited warranty  and the software's author,  the holder of the
  * economic rights,  and the successive licensors  have only  limited
  * liability.
- * 
+ *
  * In this respect, the user's attention is drawn to the risks associated
  * with loading,  using,  modifying and/or developing or reproducing the
  * software by the user in light of its specific status of free software,
@@ -31,45 +31,44 @@
  * requirements in conditions enabling the security of their systems and/or
  * data to be ensured and,  more generally, to use and operate it in the
  * same conditions as regards security.
- * 
+ *
  * The fact that you are presently reading this means that you have had
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
 
-
-
 package ui.avatarrd;
 
 //import java.awt.*;
 
+import myutil.TraceManager;
 import ui.*;
+import ui.req.TGConnectorVerify;
 
-import java.util.LinkedList;
-import java.util.ListIterator;
-import java.util.Vector;
+import java.util.*;
 
 /**
  * Class AvatarRDPanel
  * Panel for drawing Avatar requirement diagrams
-* Creation: 20/04/2010
-* @version 1.0 20/04/2010
+ * Creation: 20/04/2010
+ *
  * @author Ludovic APVRILLE
+ * @version 1.0 20/04/2010
  */
 public class AvatarRDPanel extends TDiagramPanel implements TDPWithAttributes {
     public Vector validated, ignored;
-    
-    public  AvatarRDPanel(MainGUI mgui, TToolBar _ttb) {
+
+    public AvatarRDPanel(MainGUI mgui, TToolBar _ttb) {
         super(mgui, _ttb);
         /*TDiagramMouseManager tdmm = new TDiagramMouseManager(this);
         addMouseListener(tdmm);
         addMouseMotionListener(tdmm);*/
     }
-    
+
     public boolean actionOnDoubleClick(TGComponent tgc) {
         return true;
     }
-    
+
     public boolean actionOnAdd(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             TCDTClass tgcc = (TCDTClass)(tgc);
@@ -78,7 +77,7 @@ public class AvatarRDPanel extends TDiagramPanel implements TDPWithAttributes {
         }*/
         return false;
     }
-    
+
     public boolean actionOnRemove(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             TCDTClass tgcc = (TCDTClass)(tgc);
@@ -88,41 +87,41 @@ public class AvatarRDPanel extends TDiagramPanel implements TDPWithAttributes {
         }*/
         return false;
     }
-    
+
     public boolean actionOnValueChanged(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
             return actionOnDoubleClick(tgc);
         }*/
         return false;
     }
-    
+
     public String getXMLHead() {
         return "<AvatarRDPanel name=\"" + name + "\"" + sizeParam() + zoomParam() + " >";
     }
-    
+
     public String getXMLTail() {
         return "</AvatarRDPanel>";
     }
-    
+
     public String getXMLSelectedHead() {
         return "<AvatarRDPanelCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >";
     }
-    
+
     public String getXMLSelectedTail() {
         return "</AvatarRDPanelCopy>";
     }
-    
+
     public String getXMLCloneHead() {
         return "<AvatarRDPanelCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >";
     }
-    
+
     public String getXMLCloneTail() {
         return "</AvatarRDPanelCopy>";
     }
-    
-    
+
+
     public void makePostLoadingProcessing() throws MalformedModelingException {
-        
+
     }
     
     /*public int nbOfVerifyStartingAt(TGComponent tgc) {
@@ -144,23 +143,23 @@ public class AvatarRDPanel extends TDiagramPanel implements TDPWithAttributes {
         
         return cpt;
     }*/
-	
-	public LinkedList<TGComponent> getAllRequirements() {
-		LinkedList<TGComponent> list = new LinkedList<TGComponent>();
-		TGComponent tgc;
-		
-		ListIterator iterator = getComponentList().listIterator();
-		
-		while(iterator.hasNext()) {
-            tgc = (TGComponent)(iterator.next());
+
+    public LinkedList<TGComponent> getAllRequirements() {
+        LinkedList<TGComponent> list = new LinkedList<TGComponent>();
+        TGComponent tgc;
+
+        ListIterator iterator = getComponentList().listIterator();
+
+        while (iterator.hasNext()) {
+            tgc = (TGComponent) (iterator.next());
             if (tgc instanceof AvatarRDRequirement) {
-				list.add(tgc);
-			}
-		}
-		
-		return list;
-		
-	}
+                list.add(tgc);
+            }
+        }
+
+        return list;
+
+    }
     
     /*public boolean isLinkedByVerifyTo(TGComponent tgc1, TGComponent tgc2) {
         ListIterator iterator = getComponentList().listIterator();
@@ -180,11 +179,332 @@ public class AvatarRDPanel extends TDiagramPanel implements TDPWithAttributes {
         
         return false;
     }*/
-	
-	public void enhance() {
-		autoAdjust();
+
+    public void enhance() {
+        autoAdjust();
+    }
+
+    public ArrayList<AvatarRDProperty> getAllPropertiesVerify(AvatarRDRequirement req) {
+        ArrayList<AvatarRDProperty> listOfProps = new ArrayList<>();
+
+        // We parse all AvatarRDVerifyConnector
+        ListIterator iterator = getComponentList().listIterator();
+        TGComponent tgc;
+        TGConnectingPoint p1, p2, pother;
+
+        while (iterator.hasNext()) {
+            tgc = (TGComponent) (iterator.next());
+            //TraceManager.addDev("Considering component=" + tgc);
+            if (tgc instanceof AvatarRDVerifyConnector) {
+                //TraceManager.addDev("Connector verify");
+                p1 = ((AvatarRDVerifyConnector) (tgc)).getTGConnectingPointP1();
+                p2 = ((AvatarRDVerifyConnector) (tgc)).getTGConnectingPointP2();
+                pother = null;
+                if (req.belongsToMe(p1)) {
+                    pother = p2;
+                    //TraceManager.addDev("pother = p2");
+                }
+                if (req.belongsToMe(p2)) {
+                    pother = p1;
+                    //TraceManager.addDev("pother = p1");
+                }
+                //TraceManager.addDev("pother computed");
+
+                //TraceManager.addDev("pother=" + pother);
+
+                if (pother != null) {
+                    TGComponent foundC = getComponentToWhichBelongs(pother);
+                    //TraceManager.addDev("FoundC=" + foundC);
+                    if (foundC instanceof AvatarRDProperty) {
+                        //TraceManager.addDev("Adding foundC");
+                        listOfProps.add((AvatarRDProperty)foundC);
+                    }
+                }
+            }
+        }
+
+        return listOfProps;
+
+    }
+
+    public ArrayList<AvatarRDElementReference> getAllElementsSatified(AvatarRDRequirement req) {
+        ArrayList<AvatarRDElementReference> listOfProps = new ArrayList<>();
+
+        // We parse all AvatarRDVerifyConnector
+        ListIterator iterator = getComponentList().listIterator();
+        TGComponent tgc;
+        TGConnectingPoint p1, p2, pother;
+
+        while (iterator.hasNext()) {
+            tgc = (TGComponent) (iterator.next());
+            //TraceManager.addDev("Considering component=" + tgc);
+            if (tgc instanceof AvatarRDSatisfyConnector) {
+                //TraceManager.addDev("Connector verify");
+                p1 = ((AvatarRDSatisfyConnector) (tgc)).getTGConnectingPointP1();
+                p2 = ((AvatarRDSatisfyConnector) (tgc)).getTGConnectingPointP2();
+                pother = null;
+                if (req.belongsToMe(p1)) {
+                    pother = p2;
+                    //TraceManager.addDev("pother = p2");
+                }
+                if (req.belongsToMe(p2)) {
+                    pother = p1;
+                    //TraceManager.addDev("pother = p1");
+                }
+                //TraceManager.addDev("pother computed");
+
+                //TraceManager.addDev("pother=" + pother);
+
+                if (pother != null) {
+                    TGComponent foundC = getComponentToWhichBelongs(pother);
+                    //TraceManager.addDev("FoundC=" + foundC);
+                    if (foundC instanceof AvatarRDElementReference) {
+                        //TraceManager.addDev("Adding foundC");
+                        listOfProps.add((AvatarRDElementReference)foundC);
+                    }
+                }
+            }
+        }
+
+        return listOfProps;
+
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllImmediateSons(AvatarRDRequirement req) {
+        ArrayList<AvatarRDRequirement> listOfProps = new ArrayList<>();
+
+        // We parse all AvatarRDVerifyConnector
+        ListIterator iterator = getComponentList().listIterator();
+        TGComponent tgc;
+        TGConnectingPoint p1, p2, pother;
+
+        while (iterator.hasNext()) {
+            tgc = (TGComponent) (iterator.next());
+            //TraceManager.addDev("Considering component=" + tgc);
+            if (tgc instanceof AvatarRDCompositionConnector) {
+                //TraceManager.addDev("Connector verify");
+                p1 = ((AvatarRDCompositionConnector) (tgc)).getTGConnectingPointP1();
+                p2 = ((AvatarRDCompositionConnector) (tgc)).getTGConnectingPointP2();
+                pother = null;
+
+                if (req.belongsToMe(p2)) {
+                    pother = p1;
+                    //TraceManager.addDev("pother = p1");
+                }
+                //TraceManager.addDev("pother computed");
+
+                //TraceManager.addDev("pother=" + pother);
+
+                if (pother != null) {
+                    TGComponent foundC = getComponentToWhichBelongs(pother);
+                    //TraceManager.addDev("FoundC=" + foundC);
+                    if (foundC instanceof AvatarRDRequirement) {
+                        //TraceManager.addDev("Adding foundC");
+                        listOfProps.add((AvatarRDRequirement)foundC);
+                    }
+                }
+            }
+        }
+
+        return listOfProps;
+
+    }
+
+
+    public ArrayList<AvatarRDRequirement> getAllSons(AvatarRDRequirement req) {
+        HashSet<AvatarRDRequirement> met = new HashSet<>();
+        met.add(req);
+
+        ArrayList<AvatarRDRequirement> listOfSons = new ArrayList<>();
+        ArrayList<AvatarRDRequirement> tmpList = new ArrayList<>();
+        ArrayList<AvatarRDRequirement> tmpNew = new ArrayList<>();
+        tmpList.add(req);
+
+        for(;;) {
+            tmpNew.clear();
+            for(AvatarRDRequirement rq: tmpList) {
+                tmpNew.addAll(getAllImmediateSons(rq));
+            }
+            tmpList.clear();
+            for(AvatarRDRequirement rq: tmpNew) {
+                if (!(met.contains(rq))) {
+                    met.add(rq);
+                    listOfSons.add(rq);
+                    tmpList.add(rq);
+                }
+            }
+            if(tmpList.size() == 0) {
+                break;
+            }
+        }
+
+        return listOfSons;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllImmediateFathers(AvatarRDRequirement req) {
+        ArrayList<AvatarRDRequirement> listOfProps = new ArrayList<>();
+
+        // We parse all AvatarRDVerifyConnector
+        ListIterator iterator = getComponentList().listIterator();
+        TGComponent tgc;
+        TGConnectingPoint p1, p2, pother;
+
+        while (iterator.hasNext()) {
+            tgc = (TGComponent) (iterator.next());
+            //TraceManager.addDev("Considering component=" + tgc);
+            if (tgc instanceof AvatarRDCompositionConnector) {
+                //TraceManager.addDev("Connector verify");
+                p1 = ((AvatarRDCompositionConnector) (tgc)).getTGConnectingPointP1();
+                p2 = ((AvatarRDCompositionConnector) (tgc)).getTGConnectingPointP2();
+                pother = null;
+
+                if (req.belongsToMe(p1)) {
+                    pother = p2;
+                    //TraceManager.addDev("pother = p1");
+                }
+                //TraceManager.addDev("pother computed");
+
+                //TraceManager.addDev("pother=" + pother);
+
+                if (pother != null) {
+                    TGComponent foundC = getComponentToWhichBelongs(pother);
+                    //TraceManager.addDev("FoundC=" + foundC);
+                    if (foundC instanceof AvatarRDRequirement) {
+                        //TraceManager.addDev("Adding foundC");
+                        listOfProps.add((AvatarRDRequirement)foundC);
+                    }
+                }
+            }
+        }
+
+        return listOfProps;
+
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllFathers(AvatarRDRequirement req) {
+        HashSet<AvatarRDRequirement> met = new HashSet<>();
+        met.add(req);
+
+        ArrayList<AvatarRDRequirement> listOfSons = new ArrayList<>();
+        ArrayList<AvatarRDRequirement> tmpList = new ArrayList<>();
+        ArrayList<AvatarRDRequirement> tmpNew = new ArrayList<>();
+        tmpList.add(req);
+
+        for(;;) {
+            tmpNew.clear();
+            for(AvatarRDRequirement rq: tmpList) {
+                tmpNew.addAll(getAllImmediateFathers(rq));
+            }
+            tmpList.clear();
+            for(AvatarRDRequirement rq: tmpNew) {
+                if (!(met.contains(rq))) {
+                    met.add(rq);
+                    listOfSons.add(rq);
+                    tmpList.add(rq);
+                }
+            }
+            if(tmpList.size() == 0) {
+                break;
+            }
+        }
+
+        return listOfSons;
+    }
+
+
+    public ArrayList<AvatarRDRequirement> getAllMeRefine(AvatarRDRequirement req, int origin) {
+        ArrayList<AvatarRDRequirement> listOfProps = new ArrayList<>();
+
+        // We parse all AvatarRDVerifyConnector
+        ListIterator iterator = getComponentList().listIterator();
+        TGComponent tgc;
+        TGConnectingPoint p1, p2, pother;
+
+        while (iterator.hasNext()) {
+            tgc = (TGComponent) (iterator.next());
+            //TraceManager.addDev("Considering component=" + tgc);
+            if (tgc instanceof AvatarRDRefineConnector) {
+                //TraceManager.addDev("Connector verify");
+                p1 = ((AvatarRDRefineConnector) (tgc)).getTGConnectingPointP1();
+                p2 = ((AvatarRDRefineConnector) (tgc)).getTGConnectingPointP2();
+                pother = null;
+
+                if (origin ==0) {
+                    if (req.belongsToMe(p1)) {
+                        pother = p2;
+                        //TraceManager.addDev("pother = p1");
+                    }
+                } else  {
+                    if (req.belongsToMe(p2)) {
+                        pother = p1;
+                        //TraceManager.addDev("pother = p1");
+                    }
+                }
+                //TraceManager.addDev("pother computed");
+
+                //TraceManager.addDev("pother=" + pother);
+
+                if (pother != null) {
+                    TGComponent foundC = getComponentToWhichBelongs(pother);
+                    //TraceManager.addDev("FoundC=" + foundC);
+                    if (foundC instanceof AvatarRDRequirement) {
+                        //TraceManager.addDev("Adding foundC");
+                        listOfProps.add((AvatarRDRequirement)foundC);
+                    }
+                }
+            }
+        }
+
+        return listOfProps;
+
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllMeDerive(AvatarRDRequirement req, int origin) {
+        ArrayList<AvatarRDRequirement> listOfProps = new ArrayList<>();
+
+        // We parse all AvatarRDVerifyConnector
+        ListIterator iterator = getComponentList().listIterator();
+        TGComponent tgc;
+        TGConnectingPoint p1, p2, pother;
+
+        while (iterator.hasNext()) {
+            tgc = (TGComponent) (iterator.next());
+            //TraceManager.addDev("Considering component=" + tgc);
+            if (tgc instanceof AvatarRDDeriveConnector) {
+                //TraceManager.addDev("Connector verify");
+                p1 = ((AvatarRDDeriveConnector) (tgc)).getTGConnectingPointP1();
+                p2 = ((AvatarRDDeriveConnector) (tgc)).getTGConnectingPointP2();
+                pother = null;
+
+                if (origin ==0) {
+                    if (req.belongsToMe(p1)) {
+                        pother = p2;
+                        //TraceManager.addDev("pother = p1");
+                    }
+                } else  {
+                    if (req.belongsToMe(p2)) {
+                        pother = p1;
+                        //TraceManager.addDev("pother = p1");
+                    }
+                }
+                //TraceManager.addDev("pother computed");
+
+                //TraceManager.addDev("pother=" + pother);
+
+                if (pother != null) {
+                    TGComponent foundC = getComponentToWhichBelongs(pother);
+                    //TraceManager.addDev("FoundC=" + foundC);
+                    if (foundC instanceof AvatarRDRequirement) {
+                        //TraceManager.addDev("Adding foundC");
+                        listOfProps.add((AvatarRDRequirement)foundC);
+                    }
+                }
+            }
+        }
+
+        return listOfProps;
+
     }
-    
 }
 
 
diff --git a/src/main/java/ui/avatarrd/AvatarRDRequirement.java b/src/main/java/ui/avatarrd/AvatarRDRequirement.java
index f22714d3599953be7fadd5a86a82ebea1b5423ce..77da73244b12411900a0c08604f7a4d62316a8ad 100755
--- a/src/main/java/ui/avatarrd/AvatarRDRequirement.java
+++ b/src/main/java/ui/avatarrd/AvatarRDRequirement.java
@@ -48,12 +48,16 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
 import ui.util.IconManager;
+import ui.window.JDialogIDAndStereotype;
 import ui.window.JDialogRequirement;
 
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
 
 /**
  * Class AvatarRDRequirement
@@ -83,8 +87,12 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
     private int currentFontSize = -1;
     private boolean displayText = true;
 
-    protected final static String[] REQ_TYPE_STR = {"<<Requirement>>", "<<Safety Requirement>>", "<<Security Requirement>>"};
-    protected final static int NB_REQ_TYPE = 3;
+    //protected static String[] DEFAULT_REQ = {"<<Requirement>>", "<<SafetyRequirement>>", "<<SecurityRequirement>>"};
+    protected static ArrayList<String> REQ_TYPE_STR = new ArrayList<String>(Arrays.asList("Requirement", "SafetyRequirement",
+            "SecurityRequirement"));
+    protected static ArrayList<Color> REQ_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_REQUIREMENT_TOP, ColorManager
+            .AVATAR_REQUIREMENT_TOP, ColorManager.AVATAR_REQUIREMENT_TOP));
+    //protected static int NB_REQ_TYPE = 3;
 
     protected final static int REGULAR_REQ = 0;
     protected final static int SAFETY_REQ = 1;
@@ -98,18 +106,21 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
     protected String[] texts;
     protected String kind = "";
     protected String criticality = "";
-    protected int reqType = 0;
+    protected int reqType = 0; // Type of stereotype
     protected String violatedAction = "";
     protected String attackTreeNode = "";
     protected String referenceElements = "";
     protected String id = "";
 
+    protected ArrayList<String> extraParamIDs;
+    protected ArrayList<String> extraParamValues;
+
     protected boolean satisfied = false;
     protected boolean verified = false;
 
-    private JMenuItem isRegular = null;
+    /*private JMenuItem isRegular = null;
     private JMenuItem isSafety = null;
-    private JMenuItem isSecurity = null;
+    private JMenuItem isSecurity = null;*/
     private JMenuItem menuNonSatisfied = null;
     private JMenuItem menuSatisfied = null;
     private JMenuItem menuNonVerified = null;
@@ -133,6 +144,9 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         minWidth = 1;
         minHeight = lineHeight;
 
+        extraParamIDs = new ArrayList<>();
+        extraParamValues = new ArrayList<>();
+
         nbConnectingPoint = 40;
         connectingPoint = new TGConnectingPoint[nbConnectingPoint];
         connectingPoint[0] = new AvatarRDConnectingPointDerive(this, 0, 0, true, true, 0.0, 0.25, TGConnectingPoint.WEST);
@@ -250,7 +264,14 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         g.drawRect(x, y, width, height);
 
         g.drawLine(x, y + lineHeight, x + width, y + lineHeight);
-        g.setColor(ColorManager.AVATAR_REQUIREMENT_TOP);
+        Color topColor = REQ_TYPE_COLOR.get(reqType);
+        if (topColor == null) {
+            //TraceManager.addDev("Swithing back to default Color for:" + REQ_TYPE_STR.get(reqType));
+            topColor = ColorManager.AVATAR_REQUIREMENT_TOP;
+        } else {
+            //TraceManager.addDev("Using color: " + topColor.getRGB() + "for  " +REQ_TYPE_STR.get(reqType));
+        }
+        g.setColor(topColor);
         g.fillRect(x + 1, y + 1, width - 1, lineHeight - 1);
         g.setColor(ColorManager.AVATAR_REQUIREMENT_ATTRIBUTES);
         g.fillRect(x + 1, y + 1 + lineHeight, width - 1, height - 1 - lineHeight);
@@ -263,7 +284,7 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
             size = currentFontSize - 2;
             g.setFont(myFont.deriveFont((float) (myFont.getSize() - 2)));
 
-            drawLimitedString(g, REQ_TYPE_STR[reqType], x, y + size, width, 1);
+            drawLimitedString(g, "<<" + REQ_TYPE_STR.get(reqType) + ">>", x, y + size, width, 1);
 
             size += currentFontSize;
             g.setFont(myFontB);
@@ -330,22 +351,33 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
                 if (size < (height - 2)) {
 
                     drawLimitedString(g, "Reference elements=\"" + referenceElements + "\"", x + textX, y + size, width, 0);
-
                     size += currentFontSize;
+
                     if (size < (height - 2)) {
 
                         if (reqType == SECURITY_REQ) {
                             drawLimitedString(g, "Targeted attacks=\"" + attackTreeNode + "\"", x + textX, y + size, width, 0);
+                            size += currentFontSize;
                         }
 
                         if (reqType == SAFETY_REQ) {
-                            drawLimitedString(g, "Violated action=\"" + violatedAction + "\"", x + textX, y + size, width, 0);
+                            drawLimitedString(g, "State violating req.=\"" + violatedAction + "\"", x + textX, y + size, width, 0);
+                            size += currentFontSize;
                         }
                     }
                 }
             }
         }
 
+        // Extra attributes
+        for (i = 0; i < extraParamIDs.size(); i++) {
+            if (size < (height - 2)) {
+                s = extraParamIDs.get(i) + ":" + extraParamValues.get(i);
+                drawLimitedString(g, s, x + textX, y + size, width, 0);
+            }
+            size += currentFontSize;
+
+        }
 
         g.setFont(f);
     }
@@ -359,46 +391,78 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
             if (hasFather()) {
                 text = getTopLevelName() + " / " + text;
             }
-            String s = (String) JOptionPane.showInputDialog(frame, text,
-                    "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101,
+            /*String s = (String) JOptionPane.showInputDialog(frame, text,
+                    "Setting requirement name", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101,
                     null,
-                    getValue());
+                    getValue());*/
+
+            JDialogIDAndStereotype dialog = new JDialogIDAndStereotype(frame, "Setting Requirement ID", REQ_TYPE_STR.toArray(new String[0]), getValue
+                    (), reqType,  REQ_TYPE_COLOR.toArray(new Color[0]),ColorManager.AVATAR_REQUIREMENT_TOP);
+            //dialog.setSize(400, 300);
+            GraphicLib.centerOnParent(dialog, 400, 300);
+            // dialog.show(); // blocked until dialog has been closed
+            dialog.setVisible(true);
+
+            if (dialog.hasBeenCancelled()) {
+                return false;
+            }
+
+            String s = dialog.getName();
 
-            if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
+            if ((s != null) && (s.length() > 0)){
                 //boolean b;
-                if (!TAttribute.isAValidId(s, false, false)) {
+                if (!s.equals(oldValue)) {
+                    if (!TAttribute.isAValidId(s, false, false)) {
+                        JOptionPane.showMessageDialog(frame,
+                                "Could not change the name of the Requirement: the new name is not a valid name",
+                                "Error",
+                                JOptionPane.INFORMATION_MESSAGE);
+                        return false;
+                    }
+
+                    if (!tdp.isRequirementNameUnique(s)) {
+                        JOptionPane.showMessageDialog(frame,
+                                "Could not change the name of the Requirement: the new name is already in use",
+                                "Error",
+                                JOptionPane.INFORMATION_MESSAGE);
+                        return false;
+                    }
+
+
+                    int size = graphics.getFontMetrics().stringWidth(s) + iconSize + 5;
+                    minDesiredWidth = Math.max(size, minWidth);
+                    if (minDesiredWidth != width) {
+                        newSizeForSon(null);
+                    }
+                    setValue(s);
+                }
+
+                if (!(tdp.actionOnDoubleClick(this))) {
                     JOptionPane.showMessageDialog(frame,
-                            "Could not change the name of the Requirement: the new name is not a valid name",
+                            "Could not change the name of the Requirement: this name is already in use",
                             "Error",
                             JOptionPane.INFORMATION_MESSAGE);
+                    setValue(oldValue);
                     return false;
                 }
 
-                if (!tdp.isRequirementNameUnique(s)) {
+                // Setting stereotype
+                s = dialog.getStereotype().trim();
+
+                if (!TAttribute.isAValidId(s, false, false)) {
                     JOptionPane.showMessageDialog(frame,
-                            "Could not change the name of the Requirement: the new name is already in use",
+                            "Could not use the new stereotype: the new stereotype name is not valid",
                             "Error",
                             JOptionPane.INFORMATION_MESSAGE);
                     return false;
                 }
 
+                int rgb = dialog.getColor();
 
-                int size = graphics.getFontMetrics().stringWidth(s) + iconSize + 5;
-                minDesiredWidth = Math.max(size, minWidth);
-                if (minDesiredWidth != width) {
-                    newSizeForSon(null);
-                }
-                setValue(s);
+                //TraceManager.addDev("RGBColor:" + rgb + " vs default color:" + ColorManager.REQ_TOP_BOX.getRGB());
+
+                addStereotype(s, rgb);
 
-                if (tdp.actionOnDoubleClick(this)) {
-                    return true;
-                } else {
-                    JOptionPane.showMessageDialog(frame,
-                            "Could not change the name of the Requirement: this name is already in use",
-                            "Error",
-                            JOptionPane.INFORMATION_MESSAGE);
-                    setValue(oldValue);
-                }
             }
             return false;
         }
@@ -407,6 +471,33 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
 
     }
 
+    public boolean addStereotype(String s, int rgb) {
+        int index = -1;
+        String sLower = s.toLowerCase();
+        for (int i=0; i<REQ_TYPE_STR.size(); i++) {
+            if (REQ_TYPE_STR.get(i).toLowerCase().compareTo(sLower) == 0) {
+                index = i;
+                break;
+            }
+        }
+
+        // Found stereotype
+        if (index != -1) {
+            reqType = index;
+            if (index > 0) {
+                REQ_TYPE_COLOR.set(index, new Color(rgb));
+            }
+            return false;
+
+        // Must add a new stereotype
+        } else {
+            REQ_TYPE_STR.add(s);
+            REQ_TYPE_COLOR.add(new Color(rgb));
+            reqType = REQ_TYPE_STR.size()-1;
+            return true;
+        }
+    }
+
     public boolean editAttributes() {
         //String oldValue = value;
         String atn = null;
@@ -421,7 +512,8 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
             va = violatedAction;
         }
 
-        JDialogRequirement jdr = new JDialogRequirement(tdp.getGUI().getFrame(), "Setting attributes of Requirement " + getRequirementName(), id, text, kind, criticality, va, reqType, atn, referenceElements);
+        JDialogRequirement jdr = new JDialogRequirement(tdp.getGUI().getFrame(), "Setting attributes of Requirement " + getRequirementName(), id,
+                text, kind, criticality, va, reqType, atn, referenceElements, extraParamIDs, extraParamValues);
         // jdr.setSize(750, 400);
         GraphicLib.centerOnParent(jdr, 800, 400);
         jdr.setVisible(true);
@@ -443,6 +535,27 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         kind = jdr.getKind();
         criticality = jdr.getCriticality();
 
+        // Filling extra attributes
+        String extras = jdr.getExtraAttributes();
+        extraParamValues.clear();
+        extraParamIDs.clear();
+        String[] lines = extras.split(System.getProperty("line.separator"));
+        for(String line: lines) {
+            int index0 = line.indexOf(':');
+            if (index0 >  -1) {
+                String id = line.substring(0, index0).trim();
+                if (id.length() > 0) {
+                    String val = line.substring(index0+1, line.length()).trim();
+                    if (val.length() > 0) {
+                        extraParamIDs.add(id);
+                        extraParamValues.add(val);
+                    }
+
+                }
+            }
+        }
+
+
         makeValue();
         return true;
     }
@@ -497,18 +610,12 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
 
         componentMenu.addSeparator();
 
-        isRegular = new JMenuItem("Set as regular requirement");
-        isSafety = new JMenuItem("Set as safety requirement");
-        isSecurity = new JMenuItem("Set as security requirement");
         menuNonSatisfied = new JMenuItem("Set as non satisfied");
         menuSatisfied = new JMenuItem("Set as satisfied");
         menuNonVerified = new JMenuItem("Set as non verified");
         menuVerified = new JMenuItem("Set as verified");
 
 
-        isRegular.addActionListener(menuAL);
-        isSafety.addActionListener(menuAL);
-        isSecurity.addActionListener(menuAL);
         menuNonSatisfied.addActionListener(menuAL);
         menuSatisfied.addActionListener(menuAL);
         menuNonVerified.addActionListener(menuAL);
@@ -517,9 +624,6 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         editAttributes = new JMenuItem("Edit attributes");
         editAttributes.addActionListener(menuAL);
 
-        isRegular.setEnabled(reqType != REGULAR_REQ);
-        isSafety.setEnabled(reqType != SAFETY_REQ);
-        isSecurity.setEnabled(reqType != SECURITY_REQ);
 
         menuNonSatisfied.setEnabled(satisfied);
         menuSatisfied.setEnabled(!satisfied);
@@ -527,9 +631,7 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         menuNonVerified.setEnabled(verified);
         menuVerified.setEnabled(!verified);
 
-        componentMenu.add(isRegular);
-        componentMenu.add(isSafety);
-        componentMenu.add(isSecurity);
+
         componentMenu.addSeparator();
         componentMenu.add(menuNonSatisfied);
         componentMenu.add(menuSatisfied);
@@ -549,17 +651,10 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
             verified = false;
         } else if (e.getSource() == menuVerified) {
             verified = true;
-        } else if (e.getSource() == isRegular) {
-            reqType = REGULAR_REQ;
-        } else if (e.getSource() == isSafety) {
-            reqType = SAFETY_REQ;
-        } else if (e.getSource() == isSecurity) {
-            reqType = SECURITY_REQ;
         } else {
             return editAttributes();
         }
 
-
         return true;
     }
 
@@ -596,7 +691,9 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         sb.append(criticality);
         sb.append("\" />\n");
         sb.append("<reqType data=\"");
-        sb.append(reqType);
+        sb.append(REQ_TYPE_STR.get(reqType));
+        sb.append("\" color=\"");
+        sb.append(REQ_TYPE_COLOR.get(reqType).getRGB());
         sb.append("\" />\n");
         sb.append("<id data=\"");
         sb.append(id);
@@ -616,6 +713,13 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         sb.append("<referenceElements data=\"");
         sb.append(referenceElements);
         sb.append("\" />\n");
+        for(int i=0; i<extraParamIDs.size(); i++) {
+            sb.append("<extraAttribute id=\"");
+            sb.append(extraParamIDs.get(i));
+            sb.append("\" value=\"");
+            sb.append(extraParamValues.get(i));
+            sb.append("\" />\n");
+        }
         sb.append("</extraparam>\n");
         return new String(sb);
     }
@@ -676,19 +780,37 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
                                 if (referenceElements.equals("null")) {
                                     referenceElements = "";
                                 }
+
+                            } else if (elt.getTagName().equals("extraAttribute")) {
+                                //
+                                String tmp1 = elt.getAttribute("id");
+                                String tmp2 = elt.getAttribute("value");
+                                if ((tmp1 != null) && (tmp2 != null)) {
+                                    if (tmp1.length() > 0) {
+                                        extraParamIDs.add(tmp1);
+                                        extraParamValues.add(tmp2);
+                                    }
+                                }
+
                             } else if (elt.getTagName().equals("reqType")) {
                                 //
                                 s = elt.getAttribute("data");
+                                String tmp3 = elt.getAttribute("color");
+                                int rgb = ColorManager.AVATAR_REQUIREMENT_TOP.getRGB();
+                                try {
+                                    rgb = Integer.decode(tmp3).intValue();
+                                } catch (Exception e) {
+                                }
                                 if (s.equals("null")) {
                                     reqType = REGULAR_REQ;
                                 } else {
                                     try {
-                                        reqType = Integer.decode(s).intValue();
+                                        reqType = Integer.decode(s).intValue(); // default stereo: old way
                                     } catch (Exception e) {
-                                        reqType = REGULAR_REQ;
+                                        addStereotype(s, rgb);
                                     }
                                 }
-                                if (reqType > (NB_REQ_TYPE - 1)) {
+                                if (reqType > (REQ_TYPE_STR.size() - 1)) {
                                     reqType = REGULAR_REQ;
                                 }
 
@@ -769,6 +891,10 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         }
     }
 
+    public String getStereotype() {
+        return REQ_TYPE_STR.get(reqType);
+    }
+
     public String getAttributes() {
         String attr = "ID=" + id + "\n";
         attr += "Text= " + text + "\n";
@@ -781,9 +907,24 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
         if (reqType == SECURITY_REQ) {
             attr += "Attack tree node(s)= " + attackTreeNode + "\n";
         }
+        for(int i=0; i<extraParamIDs.size(); i++) {
+            attr += extraParamIDs.get(i) + ": " + extraParamValues.get(i) + "\n";
+        }
+
         return attr;
     }
 
+    public String getExtraAttributes() {
+        String allAttr = "";
+        for (int i=0; i<extraParamIDs.size(); i++) {
+            if (i > 0) {
+                allAttr += " / ";
+            }
+            allAttr += extraParamIDs.get(i) + ":" + extraParamValues.get(i);
+        }
+        return allAttr;
+    }
+
     public void autoAdjust(int mode) {
         //
 
@@ -798,7 +939,7 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
 
         // Must find for both modes which width is desirable
         String s0, s1;
-        s0 = REQ_TYPE_STR[reqType];
+        s0 = "<<" + REQ_TYPE_STR.get(reqType) + ">>";
         s1 = "Text=";
 
         graphics.setFont(f2);
@@ -846,9 +987,158 @@ public class AvatarRDRequirement extends TGCScalableWithInternalComponent implem
             h = ((texts.length + 5) * currentFontSize) + lineHeight;
         }
 
-
         resize(w4, h);
 
     }
 
+    public ArrayList<AvatarRDProperty> getAllPropertiesVerified() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllPropertiesVerify(this);
+    }
+
+    public String getStringOfAllPropertiesVerified() {
+        ArrayList<AvatarRDProperty> list = getAllPropertiesVerified();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDElementReference> getAllElementsSatisfied() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllElementsSatified(this);
+    }
+
+    public String getStringOfAllElementsSatisfied() {
+        ArrayList<AvatarRDElementReference> list = getAllElementsSatisfied();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllImmediateSons() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllImmediateSons(this);
+    }
+
+    public String getStringOfAllImmediateSons() {
+        ArrayList<AvatarRDRequirement> list = getAllImmediateSons();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllSons() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllSons(this);
+    }
+
+    public String getStringOfAllSons() {
+        ArrayList<AvatarRDRequirement> list = getAllSons();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllImmediateFathers() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllImmediateFathers(this);
+    }
+
+    public String getStringOfAllImmediateFathers() {
+        ArrayList<AvatarRDRequirement> list = getAllImmediateFathers();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllFathers() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllFathers(this);
+    }
+
+    public String getStringOfAllFathers() {
+        ArrayList<AvatarRDRequirement> list = getAllFathers();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllMeRefineOrigin() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllMeRefine(this, 0);
+    }
+
+    public String getStringAllMeRefineOrigin() {
+        ArrayList<AvatarRDRequirement> list = getAllMeRefineOrigin();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllMeRefineDestination() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllMeRefine(this, 1);
+    }
+
+    public String getStringAllMeRefineDestination() {
+        ArrayList<AvatarRDRequirement> list = getAllMeRefineDestination();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllMeDeriveOrigin() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllMeDerive(this, 0);
+    }
+
+    public String getStringAllMeDeriveOrigin() {
+        ArrayList<AvatarRDRequirement> list = getAllMeDeriveOrigin();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
+    public ArrayList<AvatarRDRequirement> getAllMeDeriveDestination() {
+        AvatarRDPanel myPanel = (AvatarRDPanel)(getTDiagramPanel());
+        return myPanel.getAllMeDerive(this, 1);
+    }
+
+    public String getStringAllMeDeriveDestination() {
+        ArrayList<AvatarRDRequirement> list = getAllMeDeriveDestination();
+        String s = "";
+        for(int i=0; i<list.size(); i++) {
+            if (i>0) s+= " / ";
+            s += list.get(i).getValue();
+        }
+        return s;
+    }
+
 }
diff --git a/src/main/java/ui/eln/ELNComponent.java b/src/main/java/ui/eln/ELNComponent.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c3b72da30ae3f14312a1c576d12940e399fb259
--- /dev/null
+++ b/src/main/java/ui/eln/ELNComponent.java
@@ -0,0 +1,5 @@
+package ui.eln;
+
+public interface ELNComponent {
+
+}
diff --git a/src/main/java/ui/eln/ELNConnectingPoint.java b/src/main/java/ui/eln/ELNConnectingPoint.java
index b58a5aa1f46969ae787252afae00b5e408007c3c..25c6551b90d18730641bb587cb91d54345ed359f 100644
--- a/src/main/java/ui/eln/ELNConnectingPoint.java
+++ b/src/main/java/ui/eln/ELNConnectingPoint.java
@@ -52,22 +52,12 @@ import ui.TGConnectingPointWidthHeight;
 
 public class ELNConnectingPoint extends TGConnectingPointWidthHeight {
 	public boolean positionned;
-	private String name;
 
-	public ELNConnectingPoint(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h, String _name) {
+	public ELNConnectingPoint(CDElement _container, int _x, int _y, boolean _in, boolean _out, double _w, double _h) {
 		super(_container, _x, _y, _in, _out, _w, _h);
-		name = _name;
 	}
 
 	public boolean isCompatibleWith(int type) {
 		return type == TGComponentManager.ELN_CONNECTOR;
 	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNConnector.java b/src/main/java/ui/eln/ELNConnector.java
index d7fb205cc581b47e2393e3b281aa94b91079c5b0..e9a8b5cb69b8080732d64f30e2db39a704ad99dd 100644
--- a/src/main/java/ui/eln/ELNConnector.java
+++ b/src/main/java/ui/eln/ELNConnector.java
@@ -76,18 +76,7 @@ public  class ELNConnector extends TGConnector implements ScalableTGComponent {
 	}
 
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2) {
-        int cz = (int) (tdp.getZoom() * c);
-        if (p1.getName().equals("")) {
-        	g.fillOval(x2 - (cz / 2), y2 - (cz / 2), cz, cz);
- 	        g.drawLine(x1, y1, x2, y2);
-        } else if (p2.getName().equals("")) {
- 	        g.fillOval(x1 - (cz / 2), y1 - (cz / 2), cz, cz);
- 	        g.drawLine(x1, y1, x2, y2);
-        } else {
-	        g.fillOval(x2 - (cz / 2), y2 - (cz / 2), cz, cz);
-	        g.fillOval(x1 - (cz / 2), y1 - (cz / 2), cz, cz);
-	        g.drawLine(x1, y1, x2, y2);
-        }
+        g.drawLine(x1, y1, x2, y2);
     }
 
     public void rescale(double scaleFactor){
@@ -110,4 +99,4 @@ public  class ELNConnector extends TGConnector implements ScalableTGComponent {
     public int getType() {
         return TGComponentManager.ELN_CONNECTOR;
     }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/ELNPortTerminal.java b/src/main/java/ui/eln/ELNPortTerminal.java
new file mode 100644
index 0000000000000000000000000000000000000000..1b45a1ed8cc03532313b1a1525fd63e061005785
--- /dev/null
+++ b/src/main/java/ui/eln/ELNPortTerminal.java
@@ -0,0 +1,217 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package ui.eln;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.eln.ELNConnectingPoint;
+import ui.window.JDialogELNPortTerminal;
+import javax.swing.*;
+import java.awt.*;
+
+/**
+ * Class ELNPortTerminal 
+ * Port terminal to be used in ELN diagrams 
+ * Creation: 06/07/2018
+ * @version 1.0 06/07/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class ELNPortTerminal extends TGCScalableWithInternalComponent implements SwallowedTGComponent {
+	protected Color myColor;
+	protected int orientation;
+	private int maxFontSize = 14;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+	protected int oldx, oldy;
+
+	private int textX = 15;
+	private double dtextX = 0.0;
+	protected int decPoint = 3;
+
+	public ELNPortTerminal(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(10, 10);
+
+		dtextX = textX * oldScaleFactor;
+		textX = (int) dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		initConnectingPoint(1);
+
+		addTGConnectingPointsComment();
+
+		moveable = false;
+		editable = true;
+		removable = false;
+		userResizable = false;
+
+		setValue("");
+	}
+
+	public void initConnectingPoint(int nb) {
+		nbConnectingPoint = nb;
+		connectingPoint = new TGConnectingPoint[nb];
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.5);
+	}
+
+	public Color getMyColor() {
+		return myColor;
+	}
+
+	public void internalDrawing(Graphics g) {
+		Font f = g.getFont();
+		Font fold = f;
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		Color c = g.getColor();
+		g.drawRect(x, y, width, height);
+		g.fillRect(x, y, width, height);
+		g.setColor(c);
+		g.setFont(fold);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
+
+	public int getType() {
+		return TGComponentManager.ELN_PORT_TERMINAL;
+	}
+
+	public boolean editOndoubleClick(JFrame frame) {
+		JDialogELNPortTerminal jde = new JDialogELNPortTerminal(this);
+		jde.setVisible(true);
+		return true;
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
+		sb.append("<attributes name=\"" + getValue() + "\"");
+		sb.append("/>\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			String name;
+
+			for (int i = 0; i < nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for (int j = 0; j < nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
+							if (elt.getTagName().equals("attributes")) {
+								name = elt.getAttribute("name");
+								setValue(name);
+							}
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public int getDefaultConnector() {
+		return TGComponentManager.ELN_CONNECTOR;
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof ELNComponent)) {
+			setCdRectangle(0 - getWidth() / 2, father.getWidth() - (getWidth() / 2), 0 - getHeight() / 2,
+					father.getHeight() - (getHeight() / 2));
+			setMoveCd(x, y);
+			oldx = -1;
+			oldy = -1;
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java b/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java
index dc20f44ddb5eb9caff188efcddf20cbfa607e7a4..5285825269d68a6155c3c15b5f164b50ddbda67f 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentCapacitor.java
@@ -39,14 +39,12 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentCapacitor;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
@@ -60,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentCapacitor extends TGCScalableWithInternalComponent implements ActionListener {
+public class ELNComponentCapacitor extends TGCScalableWithInternalComponent	implements ActionListener, SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -75,12 +73,14 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 	private String unit0, unit1;
 
 	private int position = 0;
-	private boolean fv = false, fh = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
+
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
 
-	public ELNComponentCapacitor(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
-			TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentCapacitor(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(100, 40);
@@ -92,8 +92,6 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(2);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -106,17 +104,6 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 		setQ0(0.0);
 		setUnit0("F");
 		setUnit1("C");
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.5, "p");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 0.5, "n");
 	}
 
 	public Color getMyColor() {
@@ -124,6 +111,24 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y + height / 2 - height / 8, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term0.setValue("p");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y + height / 2 - height / 8, true, false);
+			term1 = new ELNPortTerminal(x + width - height / 4, y + height / 2 - height / 8, this.minX, this.maxX,
+					this.minY, this.maxY, false, this.father, this.tdp);
+			term1.setValue("n");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1, x + width - height / 4, y + height / 2 - height / 8, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
@@ -174,24 +179,57 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 			g.drawString(value, x + (width - w) / 2, y - height / 2);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fh == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x, y + height / 2 - height / 8, true);
+				term1.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term1.setMoveCd(x, y + height / 2 - height / 8, true);
+				term0.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term0.setMoveCd(x, y + height / 2 - height / 8, true);
+				term1.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x, y + height / 2 - height / 8, true);
+				term0.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -213,22 +251,57 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 			g.drawString(value, x + (width - w) / 2, y - height / 5);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fv == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 4, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 4,
-						y + height + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 4, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 4,
-						y + height + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x + width / 2 - width / 8, y, true);
+				term1.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term1.setMoveCd(x + width / 2 - width / 8, y, true);
+				term0.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term0.setMoveCd(x + width / 2 - width / 8, y, true);
+				term1.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x + width / 2 - width / 8, y, true);
+				term0.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -252,24 +325,57 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 			g.drawString(value, x + (width - w) / 2, y - height / 2);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fh == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x, y + height / 2 - height / 8, true);
+				term0.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term0.setMoveCd(x, y + height / 2 - height / 8, true);
+				term1.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term1.setMoveCd(x, y + height / 2 - height / 8, true);
+				term0.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x, y + height / 2 - height / 8, true);
+				term1.setMoveCd(x + width - height / 4, y + height / 2 - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -291,22 +397,57 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 			g.drawString(value, x + (width - w) / 2, y - height / 5);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fv == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 4, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 4,
-						y + height + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 4, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 4,
-						y + height + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x + width / 2 - width / 8, y, true);
+				term0.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term0.setMoveCd(x + width / 2 - width / 8, y, true);
+				term1.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term1.setMoveCd(x + width / 2 - width / 8, y, true);
+				term0.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x + width / 2 - width / 8, y, true);
+				term1.setMoveCd(x + width / 2 - width / 8, y + height - width / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
 			}
 		}
 		g.setColor(c);
@@ -376,8 +517,10 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 		sb.append("\" position=\"" + position);
 		sb.append("\" width=\"" + width);
 		sb.append("\" height=\"" + height);
-		sb.append("\" fv=\"" + fv);
-		sb.append("\" fh=\"" + fh);
+		sb.append("\" fv_0_2=\"" + fv_0_2);
+		sb.append("\" fv_1_3=\"" + fv_1_3);
+		sb.append("\" fh_0_2=\"" + fh_0_2);
+		sb.append("\" fh_1_3=\"" + fh_1_3);
 		sb.append("\" first=\"" + first + "\"");
 		sb.append("/>\n");
 		sb.append("</extraparam>\n");
@@ -393,7 +536,7 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 			double value, q0;
 			String unit0, unit1;
 			int position, width, height;
-			boolean fv, fh, first;
+			boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first;
 
 			for (int i = 0; i < nl.getLength(); i++) {
 				n1 = nl.item(i);
@@ -411,8 +554,10 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 								position = Integer.parseInt(elt.getAttribute("position"));
 								width = Integer.parseInt(elt.getAttribute("width"));
 								height = Integer.parseInt(elt.getAttribute("height"));
-								fv = Boolean.parseBoolean(elt.getAttribute("fv"));
-								fh = Boolean.parseBoolean(elt.getAttribute("fh"));
+								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
 								first = Boolean.parseBoolean(elt.getAttribute("first"));
 								setVal(value);
 								setQ0(q0);
@@ -421,8 +566,10 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 								setPosition(position);
 								this.width = width;
 								this.height = height;
-								setFv(fv);
-								setFh(fh);
+								setFv_0_2(fv_0_2);
+								setFv_1_3(fv_1_3);
+								setFh_0_2(fh_0_2);
+								setFh_1_3(fh_1_3);
 								setFirst(first);
 							}
 						}
@@ -437,11 +584,11 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -457,30 +604,46 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		fv = false;
-		fh = false;
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
 		}
 		if (e.getActionCommand().equals("Flip vertically")) {
-			if (fv == false) {
-				fv = true;
-			} else {
-				fv = false;
+			if (position == 0 || position == 2) {
+				if (fv_0_2 == false) {
+					fv_0_2 = true;
+				} else {
+					fv_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fv_1_3 == false) {
+					fv_1_3 = true;
+				} else {
+					fv_1_3 = false;
+				}
 			}
 		}
 		if (e.getActionCommand().equals("Flip horizontally")) {
-			if (fh == false) {
-				fh = true;
-			} else {
-				fh = false;
+			if (position == 0 || position == 2) {
+				if (fh_0_2 == false) {
+					fh_0_2 = true;
+				} else {
+					fh_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fh_1_3 == false) {
+					fh_1_3 = true;
+				} else {
+					fh_1_3 = false;
+				}
 			}
 		}
 	}
@@ -525,31 +688,75 @@ public class ELNComponentCapacitor extends TGCScalableWithInternalComponent impl
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
+	}
+
+	public boolean isFv_0_2() {
+		return fv_0_2;
+	}
+
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
+	}
+
+	public boolean isFv_1_3() {
+		return fv_1_3;
+	}
+
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
-	public boolean isFv() {
-		return fv;
+	public boolean isFh_0_2() {
+		return fh_0_2;
 	}
 
-	public void setFv(boolean fv) {
-		this.fv = fv;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
-	public boolean isFh() {
-		return fh;
+	public boolean isFh_1_3() {
+		return fh_1_3;
 	}
 
-	public void setFh(boolean fh) {
-		this.fh = fh;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java b/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java
index c5809d88bc32231a06e2a9662e50afa96560bdcf..ea065c544f8caafcf7d21481af9bb03e9ab22ee0 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentIdealTransformer.java
@@ -39,28 +39,28 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentIdealTransformer;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
- * Class ELNComponentIdealTransformer 
- * Ideal transformer to be used in ELN diagrams 
- * Creation: 13/06/2018
+ * Class ELNComponentIdealTransformer Ideal transformer to be used in ELN
+ * diagrams Creation: 13/06/2018
+ * 
  * @version 1.0 13/06/2018
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentIdealTransformer extends TGCScalableWithInternalComponent implements ActionListener {
+public class ELNComponentIdealTransformer extends
+		TGCScalableWithInternalComponent implements ActionListener,
+		SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -74,12 +74,19 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 	private double ratio;
 
 	private int position = 0;
-	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false,
+			fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
+
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
+	private ELNPortTerminal term2;
+	private ELNPortTerminal term3;
 
-	public ELNComponentIdealTransformer(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
-			TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentIdealTransformer(int _x, int _y, int _minX, int _maxX,
+			int _minY, int _maxY, boolean _pos, TGComponent _father,
+			TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(100, 100);
@@ -91,8 +98,6 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(4);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -102,19 +107,6 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 		value = tdp.findELNComponentName("IdealTransformer");
 
 		setRatio(1.0);
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p1");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 0.0, "p2");
-		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "n1");
-		connectingPoint[3] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 1.0, "n2");
 	}
 
 	public Color getMyColor() {
@@ -122,12 +114,52 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y, this.minX, this.maxX, this.minY,
+					this.maxY, false, this.father, this.tdp);
+			term0.setValue("p1");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y, true, false);
+
+			term1 = new ELNPortTerminal(x + width - width / 10, y, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term1.setValue("p2");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1,
+					x + width - width / 10, y, true, false);
+
+			term2 = new ELNPortTerminal(x, y + height - height / 10, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term2.setValue("n1");
+			getTDiagramPanel().getComponentList().add(term2);
+			term2.getTDiagramPanel().addComponent(term2, x,
+					y + height - height / 10, true, false);
+
+			term3 = new ELNPortTerminal(x + width - width / 10, y + height
+					- height / 10, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term3.setValue("n2");
+			getTDiagramPanel().getComponentList().add(term3);
+			term3.getTDiagramPanel().addComponent(term3,
+					x + width - width / 10, y + height - height / 10, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
 		if (this.rescaled && !this.tdp.isScaled()) {
 			this.rescaled = false;
-			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			int maxCurrentFontSize = Math.max(
+					0,
+					Math.min(this.height,
+							(int) (this.maxFontSize * this.tdp.getZoom())));
 			f = f.deriveFont((float) maxCurrentFontSize);
 
 			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
@@ -179,80 +211,132 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 10, y, true);
+				term2.setMoveCd(x, y + height - height / 10, true);
+				term3.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 10, y, true);
+				term3.setMoveCd(x, y + height - height / 10, true);
+				term2.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 10, y, true);
+				term0.setMoveCd(x, y + height - height / 10, true);
+				term1.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 10, y, true);
+				term1.setMoveCd(x, y + height - height / 10, true);
+				term0.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -283,80 +367,132 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 10, y, true);
+				term3.setMoveCd(x, y + height - height / 10, true);
+				term1.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 10, y, true);
+				term2.setMoveCd(x, y + height - height / 10, true);
+				term0.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 10, y, true);
+				term1.setMoveCd(x, y + height - height / 10, true);
+				term3.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 10, y, true);
+				term0.setMoveCd(x, y + height - height / 10, true);
+				term2.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -387,80 +523,132 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 10, y, true);
+				term1.setMoveCd(x, y + height - height / 10, true);
+				term0.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 10, y, true);
+				term0.setMoveCd(x, y + height - height / 10, true);
+				term1.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 10, y, true);
+				term3.setMoveCd(x, y + height - height / 10, true);
+				term2.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 10, y, true);
+				term2.setMoveCd(x, y + height - height / 10, true);
+				term3.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -491,80 +679,132 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 10, y, true);
+				term0.setMoveCd(x, y + height - height / 10, true);
+				term2.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 10, y, true);
+				term1.setMoveCd(x, y + height - height / 10, true);
+				term3.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 10, y, true);
+				term2.setMoveCd(x, y + height - height / 10, true);
+				term0.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 10, y, true);
+				term3.setMoveCd(x, y + height - height / 10, true);
+				term1.setMoveCd(x + width - width / 10, y + height - height
+						/ 10, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 		}
 		g.setColor(c);
@@ -573,168 +813,236 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 
 	private void rotateTop(Graphics g) {
 		int[] ptx0 = { x, x + width / 5, x + width / 5, x + width / 5 };
-		int[] pty0 = { y, y, y + height / 5, y };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height / 5,
+				y + height / 20 };
 		g.drawPolygon(ptx0, pty0, 4);
 		int[] ptx1 = { x, x + width / 5, x + width / 5, x + width / 5 };
-		int[] pty1 = { y + height, y + height, y + 4 * height / 5, y + height };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20,
+				y + 4 * height / 5, y + height - height / 20 };
 		g.drawPolygon(ptx1, pty1, 4);
-		int[] ptx2 = { x + width, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5 };
-		int[] pty2 = { y, y, y + height / 5, y };
+		int[] ptx2 = { x + width, x + 4 * width / 5, x + 4 * width / 5,
+				x + 4 * width / 5 };
+		int[] pty2 = { y + height / 20, y + height / 20, y + height / 5,
+				y + height / 20 };
 		g.drawPolygon(ptx2, pty2, 4);
-		int[] ptx3 = { x + width, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5 };
-		int[] pty3 = { y + height, y + height, y + 4 * height / 5, y + height };
+		int[] ptx3 = { x + width, x + 4 * width / 5, x + 4 * width / 5,
+				x + 4 * width / 5 };
+		int[] pty3 = { y + height - height / 20, y + height - height / 20,
+				y + 4 * height / 5, y + height - height / 20 };
 		g.drawPolygon(ptx3, pty3, 4);
 		g.drawArc(x, y + height / 5, 2 * width / 5, height / 5, 270, 180);
 		g.drawArc(x, y + 2 * height / 5, 2 * width / 5, height / 5, 270, 180);
 		g.drawArc(x, y + 3 * height / 5, 2 * width / 5, height / 5, 270, 180);
-		g.drawArc(x + 3 * width / 5, y + height / 5, 2 * width / 5, height / 5, 90, 180);
-		g.drawArc(x + 3 * width / 5, y + 2 * height / 5, 2 * width / 5, height / 5, 90, 180);
-		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, 2 * width / 5, height / 5, 90, 180);
-		g.drawOval(x + 2 * width / 5 - width / 20, y + width / 20, width / 10, width / 10);
-		g.fillOval(x + 2 * width / 5 - width / 20, y + width / 20, width / 10, width / 10);
-		g.drawOval(x + 3 * width / 5 - width / 20, y + width / 20, width / 10, width / 10);
-		g.fillOval(x + 3 * width / 5 - width / 20, y + width / 20, width / 10, width / 10);
-		g.drawArc(x + width / 5 + width / 10, y + 4 * height / 5, 2 * width / 5, height / 5, 180, 180);
+		g.drawArc(x + 3 * width / 5, y + height / 5, 2 * width / 5, height / 5,
+				90, 180);
+		g.drawArc(x + 3 * width / 5, y + 2 * height / 5, 2 * width / 5,
+				height / 5, 90, 180);
+		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, 2 * width / 5,
+				height / 5, 90, 180);
+		g.drawOval(x + 2 * width / 5 - width / 20, y + width / 20, width / 10,
+				width / 10);
+		g.fillOval(x + 2 * width / 5 - width / 20, y + width / 20, width / 10,
+				width / 10);
+		g.drawOval(x + 3 * width / 5 - width / 20, y + width / 20, width / 10,
+				width / 10);
+		g.fillOval(x + 3 * width / 5 - width / 20, y + width / 20, width / 10,
+				width / 10);
+		g.drawArc(x + width / 5 + width / 10, y + 4 * height / 5,
+				2 * width / 5, height / 5, 180, 180);
 		int[] ptx4 = { x + width / 5 + width / 10, x + width / 5 + width / 10,
 				x + width / 5 + width / 10 + width / 10 };
-		int[] pty4 = { y + 4 * height / 5 + height / 10 + height / 10, y + 4 * height / 5 + height / 10,
+		int[] pty4 = { y + 4 * height / 5 + height / 10 + height / 10,
+				y + 4 * height / 5 + height / 10,
 				y + 4 * height / 5 + height / 10 };
 		g.drawPolygon(ptx4, pty4, 3);
 		g.fillPolygon(ptx4, pty4, 3);
-		int[] ptx5 = { x + width / 5 + width / 10 + 2 * width / 5, x + width / 5 + width / 10 + 2 * width / 5,
+		int[] ptx5 = { x + width / 5 + width / 10 + 2 * width / 5,
+				x + width / 5 + width / 10 + 2 * width / 5,
 				x + width / 5 + width / 10 + 2 * width / 5 - width / 10 };
-		int[] pty5 = { y + 4 * height / 5 + height / 10 + height / 10, y + 4 * height / 5 + height / 10,
+		int[] pty5 = { y + 4 * height / 5 + height / 10 + height / 10,
+				y + 4 * height / 5 + height / 10,
 				y + 4 * height / 5 + height / 10 };
 		g.drawPolygon(ptx5, pty5, 3);
 		g.fillPolygon(ptx5, pty5, 3);
 
 		int w = g.getFontMetrics().stringWidth(Double.toString(ratio));
 		int h = g.getFontMetrics().getAscent();
-		g.drawString(Double.toString(ratio), x + (width - w) / 2, y + height + height / 10 + h);
+		g.drawString(Double.toString(ratio), x + (width - w) / 2, y + height
+				+ height / 10 + h);
 	}
 
 	private void rotateBottom(Graphics g) {
 		int[] ptx0 = { x, x + width / 5, x + width / 5, x + width / 5 };
-		int[] pty0 = { y, y, y + height / 5, y };
+		int[] pty0 = { y + height / 20, y + height / 20, y + height / 5,
+				y + height / 20 };
 		g.drawPolygon(ptx0, pty0, 4);
 		int[] ptx1 = { x, x + width / 5, x + width / 5, x + width / 5 };
-		int[] pty1 = { y + height, y + height, y + 4 * height / 5, y + height };
+		int[] pty1 = { y + height - height / 20, y + height - height / 20,
+				y + 4 * height / 5, y + height - height / 20 };
 		g.drawPolygon(ptx1, pty1, 4);
-		int[] ptx2 = { x + width, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5 };
-		int[] pty2 = { y, y, y + height / 5, y };
+		int[] ptx2 = { x + width, x + 4 * width / 5, x + 4 * width / 5,
+				x + 4 * width / 5 };
+		int[] pty2 = { y + height / 20, y + height / 20, y + height / 5,
+				y + height / 20 };
 		g.drawPolygon(ptx2, pty2, 4);
-		int[] ptx3 = { x + width, x + 4 * width / 5, x + 4 * width / 5, x + 4 * width / 5 };
-		int[] pty3 = { y + height, y + height, y + 4 * height / 5, y + height };
+		int[] ptx3 = { x + width, x + 4 * width / 5, x + 4 * width / 5,
+				x + 4 * width / 5 };
+		int[] pty3 = { y + height - height / 20, y + height - height / 20,
+				y + 4 * height / 5, y + height - height / 20 };
 		g.drawPolygon(ptx3, pty3, 4);
 		g.drawArc(x, y + height / 5, 2 * width / 5, height / 5, 270, 180);
 		g.drawArc(x, y + 2 * height / 5, 2 * width / 5, height / 5, 270, 180);
 		g.drawArc(x, y + 3 * height / 5, 2 * width / 5, height / 5, 270, 180);
-		g.drawArc(x + 3 * width / 5, y + height / 5, 2 * width / 5, height / 5, 90, 180);
-		g.drawArc(x + 3 * width / 5, y + 2 * height / 5, 2 * width / 5, height / 5, 90, 180);
-		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, 2 * width / 5, height / 5, 90, 180);
-		g.drawOval(x + 2 * width / 5 - width / 20, y + width - width / 20 - width / 10, width / 10, width / 10);
-		g.fillOval(x + 2 * width / 5 - width / 20, y + width - width / 20 - width / 10, width / 10, width / 10);
-		g.drawOval(x + 3 * width / 5 - width / 20, y + width - width / 20 - width / 10, width / 10, width / 10);
-		g.fillOval(x + 3 * width / 5 - width / 20, y + width - width / 20 - width / 10, width / 10, width / 10);
-		g.drawArc(x + width / 5 + width / 10, y, 2 * width / 5, height / 5, 0, 180);
+		g.drawArc(x + 3 * width / 5, y + height / 5, 2 * width / 5, height / 5,
+				90, 180);
+		g.drawArc(x + 3 * width / 5, y + 2 * height / 5, 2 * width / 5,
+				height / 5, 90, 180);
+		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, 2 * width / 5,
+				height / 5, 90, 180);
+		g.drawOval(x + 2 * width / 5 - width / 20, y + width - width / 20
+				- width / 10, width / 10, width / 10);
+		g.fillOval(x + 2 * width / 5 - width / 20, y + width - width / 20
+				- width / 10, width / 10, width / 10);
+		g.drawOval(x + 3 * width / 5 - width / 20, y + width - width / 20
+				- width / 10, width / 10, width / 10);
+		g.fillOval(x + 3 * width / 5 - width / 20, y + width - width / 20
+				- width / 10, width / 10, width / 10);
+		g.drawArc(x + width / 5 + width / 10, y, 2 * width / 5, height / 5, 0,
+				180);
 		int[] ptx4 = { x + width / 5 + width / 10, x + width / 5 + width / 10,
 				x + width / 5 + width / 10 + width / 10 };
-		int[] pty4 = { y + height / 5 - height / 10 - height / 10, y + height / 5 - height / 10,
-				y + height / 5 - height / 10 };
+		int[] pty4 = { y + height / 5 - height / 10 - height / 10,
+				y + height / 5 - height / 10, y + height / 5 - height / 10 };
 		g.drawPolygon(ptx4, pty4, 3);
 		g.fillPolygon(ptx4, pty4, 3);
-		int[] ptx5 = { x + width / 5 + width / 10 + 2 * width / 5, x + width / 5 + width / 10 + 2 * width / 5,
+		int[] ptx5 = { x + width / 5 + width / 10 + 2 * width / 5,
+				x + width / 5 + width / 10 + 2 * width / 5,
 				x + width / 5 + width / 10 + 2 * width / 5 - width / 10 };
-		int[] pty5 = { y + height / 5 - height / 10 - height / 10, y + height / 5 - height / 10,
-				y + height / 5 - height / 10 };
+		int[] pty5 = { y + height / 5 - height / 10 - height / 10,
+				y + height / 5 - height / 10, y + height / 5 - height / 10 };
 		g.drawPolygon(ptx5, pty5, 3);
 		g.fillPolygon(ptx5, pty5, 3);
 
 		int w = g.getFontMetrics().stringWidth(Double.toString(ratio));
-		g.drawString(Double.toString(ratio), x + (width - w) / 2, y - height / 20);
+		g.drawString(Double.toString(ratio), x + (width - w) / 2, y - height
+				/ 20);
 	}
 
 	private void rotateRight(Graphics g) {
-		int[] ptx0 = { x, x, x + width / 5, x };
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width / 5,
+				x + width / 20 };
 		int[] pty0 = { y, y + height / 5, y + height / 5, y + height / 5 };
 		g.drawPolygon(ptx0, pty0, 4);
-		int[] ptx1 = { x + width, x + width, x + 4 * width / 5, x + width };
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20,
+				x + 4 * width / 5, x + width - width / 20 };
 		int[] pty1 = { y, y + height / 5, y + height / 5, y + height / 5 };
 		g.drawPolygon(ptx1, pty1, 4);
-		int[] ptx2 = { x, x, x + width / 5, x };
-		int[] pty2 = { y + height, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5 };
+		int[] ptx2 = { x + width / 20, x + width / 20, x + width / 5,
+				x + width / 20 };
+		int[] pty2 = { y + height, y + 4 * height / 5, y + 4 * height / 5,
+				y + 4 * height / 5 };
 		g.drawPolygon(ptx2, pty2, 4);
-		int[] ptx3 = { x + width, x + width, x + 4 * width / 5, x + width };
-		int[] pty3 = { y + height, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5 };
+		int[] ptx3 = { x + width - width / 20, x + width - width / 20,
+				x + 4 * width / 5, x + width - width / 20 };
+		int[] pty3 = { y + height, y + 4 * height / 5, y + 4 * height / 5,
+				y + 4 * height / 5 };
 		g.drawPolygon(ptx3, pty3, 4);
 		g.drawArc(x + width / 5, y, width / 5, 2 * height / 5, 180, 180);
 		g.drawArc(x + 2 * width / 5, y, width / 5, 2 * height / 5, 180, 180);
 		g.drawArc(x + 3 * width / 5, y, width / 5, 2 * height / 5, 180, 180);
-		g.drawArc(x + width / 5, y + 3 * height / 5, width / 5, 2 * height / 5, 0, 180);
-		g.drawArc(x + 2 * width / 5, y + 3 * height / 5, width / 5, 2 * height / 5, 0, 180);
-		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, width / 5, 2 * height / 5, 0, 180);
-		g.drawOval(x + width - width / 10 - width / 20, y + 2 * height / 5 - height / 20, width / 10, height / 10);
-		g.fillOval(x + width - width / 10 - width / 20, y + 2 * height / 5 - height / 20, width / 10, height / 10);
-		g.drawOval(x + width - width / 10 - width / 20, y + 3 * height / 5 - height / 20, width / 10, height / 10);
-		g.fillOval(x + width - width / 10 - width / 20, y + 3 * height / 5 - height / 20, width / 10, height / 10);
-		g.drawArc(x, y + height / 5 + height / 10, width / 5, 2 * height / 5, 90, 180);
-		int[] ptx4 = { x + width / 5 - width / 10 - width / 10, x + width / 5 - width / 10,
-				x + width / 5 - width / 10 };
-		int[] pty4 = { y + height / 5 + height / 10, y + height / 5 + height / 10,
+		g.drawArc(x + width / 5, y + 3 * height / 5, width / 5, 2 * height / 5,
+				0, 180);
+		g.drawArc(x + 2 * width / 5, y + 3 * height / 5, width / 5,
+				2 * height / 5, 0, 180);
+		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, width / 5,
+				2 * height / 5, 0, 180);
+		g.drawOval(x + width - width / 10 - width / 20, y + 2 * height / 5
+				- height / 20, width / 10, height / 10);
+		g.fillOval(x + width - width / 10 - width / 20, y + 2 * height / 5
+				- height / 20, width / 10, height / 10);
+		g.drawOval(x + width - width / 10 - width / 20, y + 3 * height / 5
+				- height / 20, width / 10, height / 10);
+		g.fillOval(x + width - width / 10 - width / 20, y + 3 * height / 5
+				- height / 20, width / 10, height / 10);
+		g.drawArc(x, y + height / 5 + height / 10, width / 5, 2 * height / 5,
+				90, 180);
+		int[] ptx4 = { x + width / 5 - width / 10 - width / 10,
+				x + width / 5 - width / 10, x + width / 5 - width / 10 };
+		int[] pty4 = { y + height / 5 + height / 10,
+				y + height / 5 + height / 10,
 				y + height / 5 + height / 10 + height / 10 };
 		g.drawPolygon(ptx4, pty4, 3);
 		g.fillPolygon(ptx4, pty4, 3);
-		int[] ptx5 = { x + width / 5 - width / 10 - width / 10, x + width / 5 - width / 10,
-				x + width / 5 - width / 10 };
-		int[] pty5 = { y + height / 5 + height / 10 + 2 * height / 5, y + height / 5 + height / 10 + 2 * height / 5,
+		int[] ptx5 = { x + width / 5 - width / 10 - width / 10,
+				x + width / 5 - width / 10, x + width / 5 - width / 10 };
+		int[] pty5 = { y + height / 5 + height / 10 + 2 * height / 5,
+				y + height / 5 + height / 10 + 2 * height / 5,
 				y + height / 5 + height / 10 + 2 * height / 5 - height / 10 };
 		g.drawPolygon(ptx5, pty5, 3);
 		g.fillPolygon(ptx5, pty5, 3);
 
 		int w = g.getFontMetrics().stringWidth(Double.toString(ratio));
 		int h = g.getFontMetrics().getAscent();
-		g.drawString(Double.toString(ratio), x - width / 10 - w, y + height / 2 + h / 2);
+		g.drawString(Double.toString(ratio), x - width / 10 - w, y + height / 2
+				+ h / 2);
 	}
 
 	private void rotateLeft(Graphics g) {
-		int[] ptx0 = { x, x, x + width / 5, x };
+		int[] ptx0 = { x + width / 20, x + width / 20, x + width / 5,
+				x + width / 20 };
 		int[] pty0 = { y, y + height / 5, y + height / 5, y + height / 5 };
 		g.drawPolygon(ptx0, pty0, 4);
-		int[] ptx1 = { x + width, x + width, x + 4 * width / 5, x + width };
+		int[] ptx1 = { x + width - width / 20, x + width - width / 20,
+				x + 4 * width / 5, x + width - width / 20 };
 		int[] pty1 = { y, y + height / 5, y + height / 5, y + height / 5 };
 		g.drawPolygon(ptx1, pty1, 4);
-		int[] ptx2 = { x, x, x + width / 5, x };
-		int[] pty2 = { y + height, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5 };
+		int[] ptx2 = { x + width / 20, x + width / 20, x + width / 5,
+				x + width / 20 };
+		int[] pty2 = { y + height, y + 4 * height / 5, y + 4 * height / 5,
+				y + 4 * height / 5 };
 		g.drawPolygon(ptx2, pty2, 4);
-		int[] ptx3 = { x + width, x + width, x + 4 * width / 5, x + width };
-		int[] pty3 = { y + height, y + 4 * height / 5, y + 4 * height / 5, y + 4 * height / 5 };
+		int[] ptx3 = { x + width - width / 20, x + width - width / 20,
+				x + 4 * width / 5, x + width - width / 20 };
+		int[] pty3 = { y + height, y + 4 * height / 5, y + 4 * height / 5,
+				y + 4 * height / 5 };
 		g.drawPolygon(ptx3, pty3, 4);
 		g.drawArc(x + width / 5, y, width / 5, 2 * height / 5, 180, 180);
 		g.drawArc(x + 2 * width / 5, y, width / 5, 2 * height / 5, 180, 180);
 		g.drawArc(x + 3 * width / 5, y, width / 5, 2 * height / 5, 180, 180);
-		g.drawArc(x + width / 5, y + 3 * height / 5, width / 5, 2 * height / 5, 0, 180);
-		g.drawArc(x + 2 * width / 5, y + 3 * height / 5, width / 5, 2 * height / 5, 0, 180);
-		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, width / 5, 2 * height / 5, 0, 180);
-		g.drawOval(x + width / 20, y + 2 * height / 5 - height / 20, width / 10, height / 10);
-		g.fillOval(x + width / 20, y + 2 * height / 5 - height / 20, width / 10, height / 10);
-		g.drawOval(x + width / 20, y + 3 * height / 5 - height / 20, width / 10, height / 10);
-		g.fillOval(x + width / 20, y + 3 * height / 5 - height / 20, width / 10, height / 10);
-		g.drawArc(x + 4 * width / 5, y + height / 5 + height / 10, width / 5, 2 * height / 5, 270, 180);
-		int[] ptx4 = { x + 4 * width / 5 + width / 10 + width / 10, x + 4 * width / 5 + width / 10,
-				x + 4 * width / 5 + width / 10 };
-		int[] pty4 = { y + height / 5 + height / 10, y + height / 5 + height / 10,
+		g.drawArc(x + width / 5, y + 3 * height / 5, width / 5, 2 * height / 5,
+				0, 180);
+		g.drawArc(x + 2 * width / 5, y + 3 * height / 5, width / 5,
+				2 * height / 5, 0, 180);
+		g.drawArc(x + 3 * width / 5, y + 3 * height / 5, width / 5,
+				2 * height / 5, 0, 180);
+		g.drawOval(x + width / 20, y + 2 * height / 5 - height / 20,
+				width / 10, height / 10);
+		g.fillOval(x + width / 20, y + 2 * height / 5 - height / 20,
+				width / 10, height / 10);
+		g.drawOval(x + width / 20, y + 3 * height / 5 - height / 20,
+				width / 10, height / 10);
+		g.fillOval(x + width / 20, y + 3 * height / 5 - height / 20,
+				width / 10, height / 10);
+		g.drawArc(x + 4 * width / 5, y + height / 5 + height / 10, width / 5,
+				2 * height / 5, 270, 180);
+		int[] ptx4 = { x + 4 * width / 5 + width / 10 + width / 10,
+				x + 4 * width / 5 + width / 10, x + 4 * width / 5 + width / 10 };
+		int[] pty4 = { y + height / 5 + height / 10,
+				y + height / 5 + height / 10,
 				y + height / 5 + height / 10 + height / 10 };
 		g.drawPolygon(ptx4, pty4, 3);
 		g.fillPolygon(ptx4, pty4, 3);
-		int[] ptx5 = { x + 4 * width / 5 + width / 10 + width / 10, x + 4 * width / 5 + width / 10,
-				x + 4 * width / 5 + width / 10 };
-		int[] pty5 = { y + height / 5 + height / 10 + 2 * height / 5, y + height / 5 + height / 10 + 2 * height / 5,
+		int[] ptx5 = { x + 4 * width / 5 + width / 10 + width / 10,
+				x + 4 * width / 5 + width / 10, x + 4 * width / 5 + width / 10 };
+		int[] pty5 = { y + height / 5 + height / 10 + 2 * height / 5,
+				y + height / 5 + height / 10 + 2 * height / 5,
 				y + height / 5 + height / 10 + 2 * height / 5 - height / 10 };
 		g.drawPolygon(ptx5, pty5, 3);
 		g.fillPolygon(ptx5, pty5, 3);
 
 		int h = g.getFontMetrics().getAscent();
-		g.drawString(Double.toString(ratio), x + width + width / 10, y + height / 2 + h / 2);
+		g.drawString(Double.toString(ratio), x + width + width / 10, y + height
+				/ 2 + h / 2);
 	}
 
 	public TGComponent isOnOnlyMe(int _x, int _y) {
@@ -749,7 +1057,8 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 	}
 
 	public boolean editOndoubleClick(JFrame frame) {
-		JDialogELNComponentIdealTransformer jde = new JDialogELNComponentIdealTransformer(this);
+		JDialogELNComponentIdealTransformer jde = new JDialogELNComponentIdealTransformer(
+				this);
 		jde.setVisible(true);
 		return true;
 	}
@@ -770,7 +1079,8 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 		return new String(sb);
 	}
 
-	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId)
+			throws MalformedModelingException {
 		try {
 			NodeList nli;
 			Node n1, n2;
@@ -789,15 +1099,24 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 						if (n2.getNodeType() == Node.ELEMENT_NODE) {
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
-								ratio = Double.parseDouble(elt.getAttribute("ratio"));
-								position = Integer.parseInt(elt.getAttribute("position"));
-								width = Integer.parseInt(elt.getAttribute("width"));
-								height = Integer.parseInt(elt.getAttribute("height"));
-								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
-								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
-								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
-								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
-								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								ratio = Double.parseDouble(elt
+										.getAttribute("ratio"));
+								position = Integer.parseInt(elt
+										.getAttribute("position"));
+								width = Integer.parseInt(elt
+										.getAttribute("width"));
+								height = Integer.parseInt(elt
+										.getAttribute("height"));
+								fv_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt
+										.getAttribute("first"));
 								setRatio(ratio);
 								setPosition(position);
 								this.width = width;
@@ -817,14 +1136,15 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 		}
 	}
 
-	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+	public void addActionToPopupMenu(JPopupMenu componentMenu,
+			ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -840,12 +1160,12 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
@@ -900,47 +1220,75 @@ public class ELNComponentIdealTransformer extends TGCScalableWithInternalCompone
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
 	}
 
 	public boolean isFv_0_2() {
 		return fv_0_2;
 	}
 
-	public void setFv_0_2(boolean fv_0_2) {
-		this.fv_0_2 = fv_0_2;
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
 	}
 
 	public boolean isFv_1_3() {
 		return fv_1_3;
 	}
 
-	public void setFv_1_3(boolean fv_1_3) {
-		this.fv_1_3 = fv_1_3;
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
 	public boolean isFh_0_2() {
 		return fh_0_2;
 	}
 
-	public void setFh_0_2(boolean fh_0_2) {
-		this.fh_0_2 = fh_0_2;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
 	public boolean isFh_1_3() {
 		return fh_1_3;
 	}
 
-	public void setFh_1_3(boolean fh_1_3) {
-		this.fh_1_3 = fh_1_3;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java
index 6c381d1f35e8e838a56eab31574b705d21fbdf45..2fa0c2ab9e20d215ec2d6fc03be6bcfe565e502e 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentCurrentSource.java
@@ -39,14 +39,12 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentIndependentCurrentSource;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
@@ -60,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentIndependentCurrentSource extends TGCScalableWithInternalComponent implements ActionListener {
+public class ELNComponentIndependentCurrentSource extends TGCScalableWithInternalComponent implements ActionListener, SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -78,10 +76,12 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 	private int position = 0;
 	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
+
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
 
-	public ELNComponentIndependentCurrentSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
-			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentIndependentCurrentSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,	boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(60, 80);
@@ -93,8 +93,6 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(2);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -113,17 +111,6 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 		setAcAmplitude(0.0);
 		setAcPhase(0.0);
 		setAcNoiseAmplitude(0.0);
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0 / 3.0, 0.0, "p");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0 / 3.0, 1.0, "n");
 	}
 
 	public Color getMyColor() {
@@ -131,6 +118,24 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y + height / 2 - height / 4, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term0.setValue("p");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y + height / 2 - height / 4, true, false);
+			term1 = new ELNPortTerminal(x + width - height / 2, y + height / 2 - height / 4, this.minX, this.maxX,
+					this.minY, this.maxY, false, this.father, this.tdp);
+			term1.setValue("n");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1, x + width - height / 2, y + height / 2 - height / 4, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
@@ -182,52 +187,56 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 3 + width / 6,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 3 - width / 12, y, true);
+				term1.setMoveCd(x + width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 3 + width / 6, y);
+				g.drawString(term1.getValue(), x + width / 3 + width / 6, y + height + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + 2 * width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + 2 * width / 3 + width / 6,
-						y + height + sh1);
+				term0.setMoveCd(x + 2 * width / 3 - width / 12, y, true);
+				term1.setMoveCd(x + 2 * width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + 2 * width / 3 + width / 6, y);
+				g.drawString(term1.getValue(), x + 2 * width / 3 + width / 6, y + height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 3 + width / 6,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 3 - width / 12, y, true);
+				term0.setMoveCd(x + width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 3 + width / 6, y);
+				g.drawString(term0.getValue(), x + width / 3 + width / 6, y + height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + 2 * width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + 2 * width / 3 + width / 6,
-						y + height + sh0);
+				term1.setMoveCd(x + 2 * width / 3 - width / 12, y, true);
+				term0.setMoveCd(x + 2 * width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + 2 * width / 3 + width / 6, y);
+				g.drawString(term0.getValue(), x + 2 * width / 3 + width / 6, y + height + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -254,56 +263,56 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 3 + height / 6 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 3 + height / 6 + sh0);
+				term1.setMoveCd(x, y + height / 3 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 3 + height / 6 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 3 + height / 6 + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + 2 * height / 3 + height / 6 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + 2 * height / 3 + height / 6 + sh0);
+				term1.setMoveCd(x, y + 2 * height / 3 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + 2 * height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + 2 * height / 3 + height / 6 + sh1);
+				g.drawString(term0.getValue(), x + width, y + 2 * height / 3 + height / 6 + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(2.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 3 + height / 6 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 3 + height / 6 + sh1);
+				term0.setMoveCd(x, y + height / 3 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 3 + height / 6 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 3 + height / 6 + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(2.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + 2 * height / 3 + height / 6 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + 2 * height / 3 + height / 6 + sh1);
+				term0.setMoveCd(x, y + 2 * height / 3 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + 2 * height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + 2 * height / 3 + height / 6 + sh0);
+				g.drawString(term1.getValue(), x + width, y + 2 * height / 3 + height / 6 + sh1);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -328,52 +337,56 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + 2 * width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + 2 * width / 3 + width / 6,
-						y + height + sh0);
+				term1.setMoveCd(x + 2 * width / 3 - width / 12, y, true);
+				term0.setMoveCd(x + 2 * width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + 2 * width / 3 + width / 6, y);
+				g.drawString(term0.getValue(), x + 2 * width / 3 + width / 6, y + height + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 3 + width / 6,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 3 - width / 12, y, true);
+				term0.setMoveCd(x + width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 3 + width / 6, y);
+				g.drawString(term0.getValue(), x + width / 3 + width / 6, y + height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + 2 * width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + 2 * width / 3 + width / 6,
-						y + height + sh1);
+				term0.setMoveCd(x + 2 * width / 3 - width / 12, y, true);
+				term1.setMoveCd(x + 2 * width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + 2 * width / 3 + width / 6, y);
+				g.drawString(term1.getValue(), x + 2 * width / 3 + width / 6, y + height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 3 + width / 6, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 3 + width / 6,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 3 - width / 12, y, true);
+				term1.setMoveCd(x + width / 3 - width / 12, y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 3 + width / 6, y);
+				g.drawString(term1.getValue(), x + width / 3 + width / 6, y + height + sh1);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -400,56 +413,56 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(2.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + 2 * height / 3 + height / 6 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + 2 * height / 3 + height / 6 + sh1);
+				term0.setMoveCd(x, y + 2 * height / 3 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + 2 * height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + 2 * height / 3 + height / 6 + sh0);
+				g.drawString(term1.getValue(), x + width, y + 2 * height / 3 + height / 6 + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(2.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(2.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 3 + height / 6 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 3 + height / 6 + sh1);
+				term0.setMoveCd(x, y + height / 3 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 3 + height / 6 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 3 + height / 6 + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + 2 * height / 3 + height / 6 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + 2 * height / 3 + height / 6 + sh0);
+				term1.setMoveCd(x, y + 2 * height / 3 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + 2 * height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + 2 * height / 3 + height / 6 + sh1);
+				g.drawString(term0.getValue(), x + width, y + 2 * height / 3 + height / 6 + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0 / 3.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0 / 3.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 3 + height / 6 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 3 + height / 6 + sh0);
+				term1.setMoveCd(x, y + height / 3 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + height / 3 - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 3 + height / 6 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 3 + height / 6 + sh0);
 			}
 		}
 		g.setColor(c);
@@ -743,11 +756,11 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -763,12 +776,12 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
@@ -895,47 +908,75 @@ public class ELNComponentIndependentCurrentSource extends TGCScalableWithInterna
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
 	}
 
 	public boolean isFv_0_2() {
 		return fv_0_2;
 	}
 
-	public void setFv_0_2(boolean fv_0_2) {
-		this.fv_0_2 = fv_0_2;
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
 	}
 
 	public boolean isFv_1_3() {
 		return fv_1_3;
 	}
 
-	public void setFv_1_3(boolean fv_1_3) {
-		this.fv_1_3 = fv_1_3;
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
 	public boolean isFh_0_2() {
 		return fh_0_2;
 	}
 
-	public void setFh_0_2(boolean fh_0_2) {
-		this.fh_0_2 = fh_0_2;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
 	public boolean isFh_1_3() {
 		return fh_1_3;
 	}
 
-	public void setFh_1_3(boolean fh_1_3) {
-		this.fh_1_3 = fh_1_3;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java
index e3b20438e27bafba87a629158fd1061f9019ed2e..1b53f373003e3535d03f6d5ab983bddd76c9d411 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentIndependentVoltageSource.java
@@ -39,28 +39,28 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentIndependentVoltageSource;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
- * Class ELNComponentIndependentVoltageSource 
- * Independent voltage source to be used in ELN diagrams 
- * Creation: 15/06/2018
+ * Class ELNComponentIndependentVoltageSource Independent voltage source to be
+ * used in ELN diagrams Creation: 15/06/2018
+ * 
  * @version 1.0 15/06/2018
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentIndependentVoltageSource extends TGCScalableWithInternalComponent implements ActionListener {
+public class ELNComponentIndependentVoltageSource extends
+		TGCScalableWithInternalComponent implements ActionListener,
+		SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -71,17 +71,23 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 	private double dtextX = 0.0;
 	protected int decPoint = 3;
 
-	private double initValue, offset, amplitude, frequency, phase, acAmplitude, acPhase, acNoiseAmplitude;
+	private double initValue, offset, amplitude, frequency, phase, acAmplitude,
+			acPhase, acNoiseAmplitude;
 	private String delay;
 	private String unit0;
 
 	private int position = 0;
-	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false,
+			fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
+
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
 
-	public ELNComponentIndependentVoltageSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
-			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentIndependentVoltageSource(int _x, int _y, int _minX,
+			int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father,
+			TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(40, 80);
@@ -93,8 +99,6 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(2);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -113,17 +117,6 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		setAcAmplitude(0.0);
 		setAcPhase(0.0);
 		setAcNoiseAmplitude(0.0);
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.0, "p");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 1.0, "n");
 	}
 
 	public Color getMyColor() {
@@ -131,12 +124,37 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y + height / 2 - height / 4,
+					this.minX, this.maxX, this.minY, this.maxY, false,
+					this.father, this.tdp);
+			term0.setValue("p");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x,
+					y + height / 2 - height / 4, true, false);
+			term1 = new ELNPortTerminal(x + width - height / 2, y + height / 2
+					- height / 4, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term1.setValue("n");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1,
+					x + width - height / 2, y + height / 2 - height / 4, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
 		if (this.rescaled && !this.tdp.isScaled()) {
 			this.rescaled = false;
-			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			int maxCurrentFontSize = Math.max(
+					0,
+					Math.min(this.height,
+							(int) (this.maxFontSize * this.tdp.getZoom())));
 			f = f.deriveFont((float) maxCurrentFontSize);
 
 			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
@@ -182,52 +200,80 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 12, y, true);
+				term1.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 12, y, true);
+				term1.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 12, y, true);
+				term0.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 12, y, true);
+				term0.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y
+						+ height + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -254,56 +300,84 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+				term1.setMoveCd(x, y + height / 2 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height
+						/ 4 + sh0);
+				g.drawString(term0.getValue(), x + width, y + height / 2
+						+ height / 4 + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+				term1.setMoveCd(x, y + height / 2 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height
+						/ 4 + sh0);
+				g.drawString(term0.getValue(), x + width, y + height / 2
+						+ height / 4 + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
+				term0.setMoveCd(x, y + height / 2 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - sw1, y + height / 2 + height
+						/ 4 + sh1);
+				g.drawString(term1.getValue(), x + width, y + height / 2
+						+ height / 4 + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
+				term0.setMoveCd(x, y + height / 2 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - sw1, y + height / 2 + height
+						/ 4 + sh1);
+				g.drawString(term1.getValue(), x + width, y + height / 2
+						+ height / 4 + sh0);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -328,52 +402,80 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 12, y, true);
+				term0.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 12, y, true);
+				term0.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 12, y, true);
+				term1.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 12, y, true);
+				term1.setMoveCd(x + width / 2 - width / 12, y + height - height
+						/ 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y
+						+ height + sh1);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -400,56 +502,84 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
+				term0.setMoveCd(x, y + height / 2 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - sw1, y + height / 2 + height
+						/ 4 + sh1);
+				g.drawString(term1.getValue(), x + width, y + height / 2
+						+ height / 4 + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
+				term0.setMoveCd(x, y + height / 2 - height / 12, true);
+				term1.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - sw1, y + height / 2 + height
+						/ 4 + sh1);
+				g.drawString(term1.getValue(), x + width, y + height / 2
+						+ height / 4 + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+				term1.setMoveCd(x, y + height / 2 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height
+						/ 4 + sh0);
+				g.drawString(term0.getValue(), x + width, y + height / 2
+						+ height / 4 + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+				term1.setMoveCd(x, y + height / 2 - height / 12, true);
+				term0.setMoveCd(x + width - width / 8, y + height / 2 - height
+						/ 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - sw0, y + height / 2 + height
+						/ 4 + sh0);
+				g.drawString(term0.getValue(), x + width, y + height / 2
+						+ height / 4 + sh1);
 			}
 		}
 		g.setColor(c);
@@ -460,15 +590,20 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x + width / 2, x + width / 2 };
 		int[] pty0 = { y, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width / 2 + width / 4, x + width / 2 + width / 4 + width / 8,
-				x + width / 2 + width / 4 + width / 8, x + width / 2 + width / 4 + width / 8,
+		int[] ptx1 = { x + width / 2 + width / 4,
+				x + width / 2 + width / 4 + width / 8,
+				x + width / 2 + width / 4 + width / 8,
+				x + width / 2 + width / 4 + width / 8,
 				x + width / 2 + width / 4 + width / 8, x + width };
-		int[] pty1 = { y + height / 4 - height / 8, y + height / 4 - height / 8,
-				y + height / 4 - height / 8 - width / 8, y + height / 4 - height / 8 + width / 8,
+		int[] pty1 = { y + height / 4 - height / 8,
+				y + height / 4 - height / 8,
+				y + height / 4 - height / 8 - width / 8,
+				y + height / 4 - height / 8 + width / 8,
 				y + height / 4 - height / 8, y + height / 4 - height / 8 };
 		g.drawPolygon(ptx1, pty1, 6);
 		int[] ptx2 = { x + width / 2 + width / 4, x + width };
-		int[] pty2 = { y + 3 * height / 4 + height / 8, y + 3 * height / 4 + height / 8 };
+		int[] pty2 = { y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8 };
 		g.drawPolygon(ptx2, pty2, 2);
 		g.drawOval(x, y + height / 4, width, height / 2);
 	}
@@ -477,12 +612,17 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x + width / 2, x + width / 2 };
 		int[] pty0 = { y, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width / 2 + width / 4, x + width / 2 + width / 4 + width / 8,
-				x + width / 2 + width / 4 + width / 8, x + width / 2 + width / 4 + width / 8,
+		int[] ptx1 = { x + width / 2 + width / 4,
+				x + width / 2 + width / 4 + width / 8,
+				x + width / 2 + width / 4 + width / 8,
+				x + width / 2 + width / 4 + width / 8,
 				x + width / 2 + width / 4 + width / 8, x + width };
-		int[] pty1 = { y + 3 * height / 4 + height / 8, y + 3 * height / 4 + height / 8,
-				y + 3 * height / 4 + height / 8 + width / 8, y + 3 * height / 4 + height / 8 + width / 8,
-				y + 3 * height / 4 + height / 8, y + 3 * height / 4 + height / 8 };
+		int[] pty1 = { y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8 + width / 8,
+				y + 3 * height / 4 + height / 8 - width / 8,
+				y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8 };
 		g.drawPolygon(ptx1, pty1, 6);
 		int[] ptx2 = { x + width / 2 + width / 4, x + width };
 		int[] pty2 = { y + height / 8, y + height / 8 };
@@ -494,14 +634,19 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x + width / 2, x + width / 2 };
 		int[] pty0 = { y, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width / 2 + width / 4, x + width / 2 + width / 4 + width / 8,
-				x + width / 2 + width / 4 + width / 8, x + width / 2 + width / 4 + width / 8,
-				x + width / 2 + width / 4 + width / 8, x + width };
-		int[] pty1 = { y + 3 * height / 4 + height / 8, y + 3 * height / 4 + height / 8,
-				y + 3 * height / 4 + height / 8 + width / 8, y + 3 * height / 4 + height / 8 - width / 8,
-				y + 3 * height / 4 + height / 8, y + 3 * height / 4 + height / 8 };
+		int[] ptx1 = { x + width / 2 - width / 4,
+				x + width / 2 - width / 4 - width / 8,
+				x + width / 2 - width / 4 - width / 8,
+				x + width / 2 - width / 4 - width / 8,
+				x + width / 2 - width / 4 - width / 8, x };
+		int[] pty1 = { y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8 + width / 8,
+				y + 3 * height / 4 + height / 8 - width / 8,
+				y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8 };
 		g.drawPolygon(ptx1, pty1, 6);
-		int[] ptx2 = { x + width / 2 + width / 4, x + width };
+		int[] ptx2 = { x + width / 2 - width / 4, x };
 		int[] pty2 = { y + height / 4 - height / 8, y + height / 4 - height / 8 };
 		g.drawPolygon(ptx2, pty2, 2);
 		g.drawOval(x, y + height / 4, width, height / 2);
@@ -511,14 +656,18 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x + width / 2, x + width / 2 };
 		int[] pty0 = { y, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width / 2 + width / 4, x + width / 2 + width / 4 + width / 8,
-				x + width / 2 + width / 4 + width / 8, x + width / 2 + width / 4 + width / 8,
-				x + width / 2 + width / 4 + width / 8, x + width };
-		int[] pty1 = { y + height / 8, y + height / 8, y + height / 8 + width / 8, y + height / 8 - width / 8,
+		int[] ptx1 = { x + width / 2 - width / 4,
+				x + width / 2 - width / 4 - width / 8,
+				x + width / 2 - width / 4 - width / 8,
+				x + width / 2 - width / 4 - width / 8,
+				x + width / 2 - width / 4 - width / 8, x };
+		int[] pty1 = { y + height / 8, y + height / 8,
+				y + height / 8 + width / 8, y + height / 8 - width / 8,
 				y + height / 8, y + height / 8 };
 		g.drawPolygon(ptx1, pty1, 6);
-		int[] ptx2 = { x + width / 2 + width / 4, x + width };
-		int[] pty2 = { y + 3 * height / 4 + height / 8, y + 3 * height / 4 + height / 8 };
+		int[] ptx2 = { x + width / 2 - width / 4, x };
+		int[] pty2 = { y + 3 * height / 4 + height / 8,
+				y + 3 * height / 4 + height / 8 };
 		g.drawPolygon(ptx2, pty2, 2);
 		g.drawOval(x, y + height / 4, width, height / 2);
 	}
@@ -527,10 +676,14 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x, x + width };
 		int[] pty0 = { y + height / 2, y + height / 2 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width - width / 8, x + width - width / 8, x + width - width / 8 - height / 8,
-				x + width - width / 8 + height / 8, x + width - width / 8, x + width - width / 8 };
-		int[] pty1 = { y + height / 2 + height / 4, y + height / 2 + height / 4 + height / 8,
-				y + height / 2 + height / 4 + height / 8, y + height / 2 + height / 4 + height / 8,
+		int[] ptx1 = { x + width - width / 8, x + width - width / 8,
+				x + width - width / 8 - height / 8,
+				x + width - width / 8 + height / 8, x + width - width / 8,
+				x + width - width / 8 };
+		int[] pty1 = { y + height / 2 + height / 4,
+				y + height / 2 + height / 4 + height / 8,
+				y + height / 2 + height / 4 + height / 8,
+				y + height / 2 + height / 4 + height / 8,
 				y + height / 2 + height / 4 + height / 8, y + height };
 		g.drawPolygon(ptx1, pty1, 6);
 		int[] ptx2 = { x + width / 8, x + width / 8 };
@@ -543,10 +696,13 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x, x + width };
 		int[] pty0 = { y + height / 2, y + height / 2 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width - width / 8, x + width - width / 8, x + width - width / 8 - height / 8,
-				x + width - width / 8 + height / 8, x + width - width / 8, x + width - width / 8 };
-		int[] pty1 = { y + height / 4, y + height / 4 + height / 8, y + height / 4 + height / 8,
-				y + height / 4 + height / 8, y + height / 4 + height / 8, y };
+		int[] ptx1 = { x + width - width / 8, x + width - width / 8,
+				x + width - width / 8 - height / 8,
+				x + width - width / 8 + height / 8, x + width - width / 8,
+				x + width - width / 8 };
+		int[] pty1 = { y + height / 4, y + height / 4 - height / 8,
+				y + height / 4 - height / 8, y + height / 4 - height / 8,
+				y + height / 4 - height / 8, y };
 		g.drawPolygon(ptx1, pty1, 6);
 		int[] ptx2 = { x + width / 8, x + width / 8 };
 		int[] pty2 = { y + height / 4, y };
@@ -558,13 +714,18 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x, x + width };
 		int[] pty0 = { y + height / 2, y + height / 2 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width / 4 - width / 8, x + width / 4 - width / 8, x + width / 4 - width / 8 - height / 8,
-				x + width / 4 - width / 8 + height / 8, x + width / 4 - width / 8, x + width / 4 - width / 8 };
-		int[] pty1 = { y + height / 2 - height / 4, y + height / 2 - height / 4 - height / 8,
-				y + height / 2 - height / 4 - height / 8, y + height / 2 - height / 4 - height / 8,
+		int[] ptx1 = { x + width / 4 - width / 8, x + width / 4 - width / 8,
+				x + width / 4 - width / 8 - height / 8,
+				x + width / 4 - width / 8 + height / 8,
+				x + width / 4 - width / 8, x + width / 4 - width / 8 };
+		int[] pty1 = { y + height / 2 - height / 4,
+				y + height / 2 - height / 4 - height / 8,
+				y + height / 2 - height / 4 - height / 8,
+				y + height / 2 - height / 4 - height / 8,
 				y + height / 2 - height / 4 - height / 8, y };
 		g.drawPolygon(ptx1, pty1, 6);
-		int[] ptx2 = { x + 3 * width / 4 + width / 8, x + 3 * width / 4 + width / 8 };
+		int[] ptx2 = { x + 3 * width / 4 + width / 8,
+				x + 3 * width / 4 + width / 8 };
 		int[] pty2 = { y + height / 2 - height / 4, y };
 		g.drawPolygon(ptx2, pty2, 2);
 		g.drawOval(x + width / 4, y, width / 2, height);
@@ -574,13 +735,18 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		int[] ptx0 = { x, x + width };
 		int[] pty0 = { y + height / 2, y + height / 2 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width / 4 - width / 8, x + width / 4 - width / 8, x + width / 4 - width / 8 - height / 8,
-				x + width / 4 - width / 8 + height / 8, x + width / 4 - width / 8, x + width / 4 - width / 8 };
-		int[] pty1 = { y + height / 2 + height / 4, y + height / 2 + height / 4 + height / 8,
-				y + height / 2 + height / 4 + height / 8, y + height / 2 + height / 4 + height / 8,
+		int[] ptx1 = { x + width / 4 - width / 8, x + width / 4 - width / 8,
+				x + width / 4 - width / 8 - height / 8,
+				x + width / 4 - width / 8 + height / 8,
+				x + width / 4 - width / 8, x + width / 4 - width / 8 };
+		int[] pty1 = { y + height / 2 + height / 4,
+				y + height / 2 + height / 4 + height / 8,
+				y + height / 2 + height / 4 + height / 8,
+				y + height / 2 + height / 4 + height / 8,
 				y + height / 2 + height / 4 + height / 8, y + height };
 		g.drawPolygon(ptx1, pty1, 6);
-		int[] ptx2 = { x + 3 * width / 4 + width / 8, x + 3 * width / 4 + width / 8 };
+		int[] ptx2 = { x + 3 * width / 4 + width / 8,
+				x + 3 * width / 4 + width / 8 };
 		int[] pty2 = { y + height / 2 + height / 4, y + height };
 		g.drawPolygon(ptx2, pty2, 2);
 		g.drawOval(x + width / 4, y, width / 2, height);
@@ -598,7 +764,8 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 	}
 
 	public boolean editOndoubleClick(JFrame frame) {
-		JDialogELNComponentIndependentVoltageSource jde = new JDialogELNComponentIndependentVoltageSource(this);
+		JDialogELNComponentIndependentVoltageSource jde = new JDialogELNComponentIndependentVoltageSource(
+				this);
 		jde.setVisible(true);
 		return true;
 	}
@@ -645,7 +812,8 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		return new String(sb);
 	}
 
-	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId)
+			throws MalformedModelingException {
 		try {
 			NodeList nli;
 			Node n1, n2;
@@ -666,24 +834,40 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 						if (n2.getNodeType() == Node.ELEMENT_NODE) {
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
-								initValue = Double.parseDouble(elt.getAttribute("init_value"));
-								offset = Double.parseDouble(elt.getAttribute("offset"));
-								amplitude = Double.parseDouble(elt.getAttribute("amplitude"));
-								frequency = Double.parseDouble(elt.getAttribute("frequency"));
+								initValue = Double.parseDouble(elt
+										.getAttribute("init_value"));
+								offset = Double.parseDouble(elt
+										.getAttribute("offset"));
+								amplitude = Double.parseDouble(elt
+										.getAttribute("amplitude"));
+								frequency = Double.parseDouble(elt
+										.getAttribute("frequency"));
 								unit0 = elt.getAttribute("unit0");
-								phase = Double.parseDouble(elt.getAttribute("phase"));
+								phase = Double.parseDouble(elt
+										.getAttribute("phase"));
 								delay = elt.getAttribute("delay");
-								acAmplitude = Double.parseDouble(elt.getAttribute("ac_amplitude"));
-								acPhase = Double.parseDouble(elt.getAttribute("ac_phase"));
-								acNoiseAmplitude = Double.parseDouble(elt.getAttribute("ac_noise_amplitude"));
-								position = Integer.parseInt(elt.getAttribute("position"));
-								width = Integer.parseInt(elt.getAttribute("width"));
-								height = Integer.parseInt(elt.getAttribute("height"));
-								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
-								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
-								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
-								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
-								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								acAmplitude = Double.parseDouble(elt
+										.getAttribute("ac_amplitude"));
+								acPhase = Double.parseDouble(elt
+										.getAttribute("ac_phase"));
+								acNoiseAmplitude = Double.parseDouble(elt
+										.getAttribute("ac_noise_amplitude"));
+								position = Integer.parseInt(elt
+										.getAttribute("position"));
+								width = Integer.parseInt(elt
+										.getAttribute("width"));
+								height = Integer.parseInt(elt
+										.getAttribute("height"));
+								fv_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt
+										.getAttribute("first"));
 								setInitValue(initValue);
 								setOffset(offset);
 								setAmplitude(amplitude);
@@ -712,14 +896,15 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		}
 	}
 
-	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+	public void addActionToPopupMenu(JPopupMenu componentMenu,
+			ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -735,12 +920,12 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
@@ -867,47 +1052,75 @@ public class ELNComponentIndependentVoltageSource extends TGCScalableWithInterna
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
 	}
 
 	public boolean isFv_0_2() {
 		return fv_0_2;
 	}
 
-	public void setFv_0_2(boolean fv_0_2) {
-		this.fv_0_2 = fv_0_2;
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
 	}
 
 	public boolean isFv_1_3() {
 		return fv_1_3;
 	}
 
-	public void setFv_1_3(boolean fv_1_3) {
-		this.fv_1_3 = fv_1_3;
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
 	public boolean isFh_0_2() {
 		return fh_0_2;
 	}
 
-	public void setFh_0_2(boolean fh_0_2) {
-		this.fh_0_2 = fh_0_2;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
 	public boolean isFh_1_3() {
 		return fh_1_3;
 	}
 
-	public void setFh_1_3(boolean fh_1_3) {
-		this.fh_1_3 = fh_1_3;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java b/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java
index 70171ec80ab78e4db8e98cfb94d6ec875c1ed002..bbb5784c04b64a50b9dae69f6e93de0949f8c17c 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentInductor.java
@@ -44,9 +44,8 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentInductor;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
@@ -60,7 +59,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentInductor extends TGCScalableWithInternalComponent implements ActionListener {
+public class ELNComponentInductor extends TGCScalableWithInternalComponent implements ActionListener, SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -77,8 +76,11 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 	private int position = 0;
 	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
 
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
+	
 	public ELNComponentInductor(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
 			TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
@@ -92,8 +94,6 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(2);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -106,17 +106,6 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 		setPhi0(0.0);
 		setUnit0("H");
 		setUnit1("Wb");
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.5, "p");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 0.5, "n");
 	}
 
 	public Color getMyColor() {
@@ -124,6 +113,24 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y + height / 2 - height / 4, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term0.setValue("p");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y + height / 2 - height / 4, true, false);
+			term1 = new ELNPortTerminal(x + width - height / 2, y + height / 2 - height / 4, this.minX, this.maxX,
+					this.minY, this.maxY, false, this.father, this.tdp);
+			term1.setValue("n");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1, x + width - height / 2, y + height / 2 - height / 4, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+		
 		Font f = g.getFont();
 		Font fold = f;
 
@@ -177,56 +184,56 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 4 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 4 + sh1);
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 4 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 4 + sh0);
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -251,52 +258,56 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -323,56 +334,56 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 2 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 2 + sh0);
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 2 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 2 + sh1);
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 2 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 2 + sh0);
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 2 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 2 + sh1);
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -397,39 +408,42 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
@@ -437,12 +451,14 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
 				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
 			}
 		}
 		g.setColor(c);
@@ -593,11 +609,11 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -613,12 +629,12 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
@@ -697,47 +713,75 @@ public class ELNComponentInductor extends TGCScalableWithInternalComponent imple
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
 	}
 
 	public boolean isFv_0_2() {
 		return fv_0_2;
 	}
 
-	public void setFv_0_2(boolean fv_0_2) {
-		this.fv_0_2 = fv_0_2;
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
 	}
 
 	public boolean isFv_1_3() {
 		return fv_1_3;
 	}
 
-	public void setFv_1_3(boolean fv_1_3) {
-		this.fv_1_3 = fv_1_3;
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
 	public boolean isFh_0_2() {
 		return fh_0_2;
 	}
 
-	public void setFh_0_2(boolean fh_0_2) {
-		this.fh_0_2 = fh_0_2;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
 	public boolean isFh_1_3() {
 		return fh_1_3;
 	}
 
-	public void setFh_1_3(boolean fh_1_3) {
-		this.fh_1_3 = fh_1_3;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+	
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java b/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java
index 58690462b61d89bf1c9a65780d98c7230cb8fac9..dcc644de94b42241920ae8767a13138e35c4e480 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentNodeRef.java
@@ -46,17 +46,15 @@ import org.w3c.dom.NodeList;
 import ui.*;
 import ui.eln.ELNConnectingPoint;
 import ui.window.JDialogELNComponentNodeRef;
-import ui.window.JDialogELNComponentResistor;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
- * Class ELNComponentNodeRef Reference node to be used in ELN diagrams Creation:
- * 27/06/2018
- * 
+ * Class ELNComponentNodeRef 
+ * Reference node to be used in ELN diagrams 
+ * Creation: 27/06/2018
  * @version 1.0 27/06/2018
  * @author Irina Kit Yan LEE
  */
@@ -73,12 +71,11 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 	protected int decPoint = 3;
 
 	private int position = 0;
-	private boolean fv = false, fh = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
 	private int old;
 	private boolean first;
 
-	public ELNComponentNodeRef(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
-			TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentNodeRef(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(40, 40);
@@ -108,7 +105,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 	public void initConnectingPoint(int nb) {
 		nbConnectingPoint = nb;
 		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.0, "");
+		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.5, 0.0);
 	}
 
 	public Color getMyColor() {
@@ -160,15 +157,38 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 			g.drawString(value, x + (width - w) / 2, y - height / 2);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fv == true) {
-				rotateBottom(g);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
 				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-			} else {
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateTop(g);
 				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
 				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
 			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+			}
 		} else if (position == 1) {
 			if (first == false) {
 				first = true;
@@ -185,15 +205,39 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 			g.drawString(value, x + (width - w) / 2, y - height / 2);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fh == true) {
-				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
 				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-			} else {
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateRight(g);
 				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
 				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
 			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
+				;
+			}
 		} else if (position == 2) {
 			if (first == false) {
 				first = true;
@@ -210,15 +254,38 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 			g.drawString(value, x + (width - w) / 2, y - height / 2);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fv == true) {
-				rotateTop(g);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateBottom(g);
 				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-			} else {
+				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateBottom(g);
 				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
 				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
 			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateTop(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
+			}
 		} else if (position == 3) {
 			if (first == false) {
 				first = true;
@@ -235,15 +302,39 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 			g.drawString(value, x + (width - w) / 2, y - height / 2);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fh == true) {
-				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				rotateLeft(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
 				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-			} else {
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateLeft(g);
 				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
 				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
 			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				rotateRight(g);
+				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
+				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
+				;
+			}
 		}
 		g.setColor(c);
 		g.setFont(fold);
@@ -299,8 +390,10 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 		sb.append("<attributes position=\"" + position);
 		sb.append("\" width=\"" + width);
 		sb.append("\" height=\"" + height);
-		sb.append("\" fv=\"" + fv);
-		sb.append("\" fh=\"" + fh);
+		sb.append("\" fv_0_2=\"" + fv_0_2);
+		sb.append("\" fv_1_3=\"" + fv_1_3);
+		sb.append("\" fh_0_2=\"" + fh_0_2);
+		sb.append("\" fh_1_3=\"" + fh_1_3);
 		sb.append("\" first=\"" + first + "\"");
 		sb.append("/>\n");
 		sb.append("</extraparam>\n");
@@ -314,7 +407,7 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 			Element elt;
 
 			int position, width, height;
-			boolean fv, fh, first;
+			boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first;
 
 			for (int i = 0; i < nl.getLength(); i++) {
 				n1 = nl.item(i);
@@ -328,14 +421,18 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 								position = Integer.parseInt(elt.getAttribute("position"));
 								width = Integer.parseInt(elt.getAttribute("width"));
 								height = Integer.parseInt(elt.getAttribute("height"));
-								fv = Boolean.parseBoolean(elt.getAttribute("fv"));
-								fh = Boolean.parseBoolean(elt.getAttribute("fh"));
+								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
 								first = Boolean.parseBoolean(elt.getAttribute("first"));
 								setPosition(position);
 								this.width = width;
 								this.height = height;
-								setFv(fv);
-								setFh(fh);
+								setFv_0_2(fv_0_2);
+								setFv_1_3(fv_1_3);
+								setFh_0_2(fh_0_2);
+								setFh_1_3(fh_1_3);
 								setFirst(first);
 							}
 						}
@@ -350,11 +447,11 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -370,30 +467,46 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		fv = false;
-		fh = false;
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
 		}
 		if (e.getActionCommand().equals("Flip vertically")) {
-			if (fv == false) {
-				fv = true;
-			} else {
-				fv = false;
+			if (position == 0 || position == 2) {
+				if (fv_0_2 == false) {
+					fv_0_2 = true;
+				} else {
+					fv_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fv_1_3 == false) {
+					fv_1_3 = true;
+				} else {
+					fv_1_3 = false;
+				}
 			}
 		}
 		if (e.getActionCommand().equals("Flip horizontally")) {
-			if (fh == false) {
-				fh = true;
-			} else {
-				fh = false;
+			if (position == 0 || position == 2) {
+				if (fh_0_2 == false) {
+					fh_0_2 = true;
+				} else {
+					fh_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fh_1_3 == false) {
+					fh_1_3 = true;
+				} else {
+					fh_1_3 = false;
+				}
 			}
 		}
 	}
@@ -406,31 +519,47 @@ public class ELNComponentNodeRef extends TGCScalableWithInternalComponent implem
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
+	}
+
+	public boolean isFv_0_2() {
+		return fv_0_2;
+	}
+
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
+	}
+
+	public boolean isFv_1_3() {
+		return fv_1_3;
+	}
+
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
-	public boolean isFv() {
-		return fv;
+	public boolean isFh_0_2() {
+		return fh_0_2;
 	}
 
-	public void setFv(boolean fv) {
-		this.fv = fv;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
-	public boolean isFh() {
-		return fh;
+	public boolean isFh_1_3() {
+		return fh_1_3;
 	}
 
-	public void setFh(boolean fh) {
-		this.fh = fh;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java b/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java
index a5f5f3de284c8f86d202b9748c33481ea83be6af..87b9ff8ab24ca113ec377c395d4bfb00456c6cb0 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentResistor.java
@@ -39,14 +39,12 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentResistor;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
@@ -60,7 +58,7 @@ import java.awt.event.ActionListener;
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentResistor extends TGCScalableWithInternalComponent implements ActionListener {
+public class ELNComponentResistor extends TGCScalableWithInternalComponent implements ActionListener, SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -75,12 +73,14 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 	private String unit;
 
 	private int position = 0;
-	private boolean fv = false, fh = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
 
-	public ELNComponentResistor(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
-			TGComponent _father, TDiagramPanel _tdp) {
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
+
+	public ELNComponentResistor(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(100, 20);
@@ -92,8 +92,6 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(2);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -104,17 +102,6 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 
 		setVal(1.0);
 		setUnit("\u03A9");
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.5, "p");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 0.5, "n");
 	}
 
 	public Color getMyColor() {
@@ -122,6 +109,24 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y + height / 2 - height / 4, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term0.setValue("p");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y + height / 2 - height / 4, true, false);
+			term1 = new ELNPortTerminal(x + width - height / 2, y + height / 2 - height / 4, this.minX, this.maxX,
+					this.minY, this.maxY, false, this.father, this.tdp);
+			term1.setValue("n");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1, x + width - height / 2, y + height / 2 - height / 4, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
@@ -172,24 +177,57 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 			g.drawString(value, x + (width - w) / 2, y - height);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fh == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw1,
-						y + height / 2 + height / 2 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 2 + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw0,
-						y + height / 2 + height / 2 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 2 + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -211,23 +249,59 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 			g.drawString(value, x + (width - w) / 2, y - height / 5);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fv == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
 			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
+			}
+
 		} else if (position == 2) {
 			if (first == false) {
 				first = true;
@@ -250,24 +324,57 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 			g.drawString(value, x + (width - w) / 2, y - height);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fh == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - sw1,
-						y + height / 2 + height / 2 + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width,
-						y + height / 2 + height / 2 + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.5);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - sw0,
-						y + height / 2 + height / 2 + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width,
-						y + height / 2 + height / 2 + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term1.setMoveCd(x, y + height / 2 - height / 4, true);
+				term0.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term1.getValue(), x - sw1, y + height / 2 + height / 2 + sh1);
+				g.drawString(term0.getValue(), x + width, y + height / 2 + height / 2 + sh0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x, y + height / 2 - height / 4, true);
+				term1.setMoveCd(x + width - height / 2, y + height / 2 - height / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.5);
+				g.drawString(term0.getValue(), x - sw0, y + height / 2 + height / 2 + sh0);
+				g.drawString(term1.getValue(), x + width, y + height / 2 + height / 2 + sh1);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -289,22 +396,57 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 			g.drawString(value, x + (width - w) / 2, y - height / 5);
 			g.setFont(f.deriveFont(Font.PLAIN));
 
-			if (fv == true) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2,
-						y + height + sh0);
-			} else {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.5);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width / 2 + width / 2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width / 2 + width / 2,
-						y + height + sh1);
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
+			}
+			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
+				term1.setMoveCd(x + width / 2 - width / 4, y, true);
+				term0.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(0.0);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y + height + sh0);
+			}
+			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
+					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
+					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
+				term0.setMoveCd(x + width / 2 - width / 4, y, true);
+				term1.setMoveCd(x + width / 2 - width / 4, y + height - width / 4, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0))).setH(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setW(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0))).setH(1.0);
+				g.drawString(term0.getValue(), x + width / 2 + width / 2, y);
+				g.drawString(term1.getValue(), x + width / 2 + width / 2, y + height + sh1);
 			}
 		}
 		g.setColor(c);
@@ -372,14 +514,16 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 		sb.append("\" position=\"" + position);
 		sb.append("\" width=\"" + width);
 		sb.append("\" height=\"" + height);
-		sb.append("\" fv=\"" + fv);
-		sb.append("\" fh=\"" + fh);
+		sb.append("\" fv_0_2=\"" + fv_0_2);
+		sb.append("\" fv_1_3=\"" + fv_1_3);
+		sb.append("\" fh_0_2=\"" + fh_0_2);
+		sb.append("\" fh_1_3=\"" + fh_1_3);
 		sb.append("\" first=\"" + first + "\"");
 		sb.append("/>\n");
 		sb.append("</extraparam>\n");
 		return new String(sb);
 	}
-	
+
 	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
 		try {
 			NodeList nli;
@@ -389,8 +533,8 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 			double value;
 			String unit;
 			int position, width, height;
-			boolean fv, fh, first;
-			
+			boolean fv_0_2, fv_1_3, fh_0_2, fh_1_3, first;
+
 			for (int i = 0; i < nl.getLength(); i++) {
 				n1 = nl.item(i);
 				if (n1.getNodeType() == Node.ELEMENT_NODE) {
@@ -405,16 +549,20 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 								position = Integer.parseInt(elt.getAttribute("position"));
 								width = Integer.parseInt(elt.getAttribute("width"));
 								height = Integer.parseInt(elt.getAttribute("height"));
-								fv = Boolean.parseBoolean(elt.getAttribute("fv"));
-								fh = Boolean.parseBoolean(elt.getAttribute("fh"));
+								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
 								first = Boolean.parseBoolean(elt.getAttribute("first"));
 								setVal(value);
 								setUnit(unit);
 								setPosition(position);
 								this.width = width;
 								this.height = height;
-								setFv(fv);
-								setFh(fh);
+								setFv_0_2(fv_0_2);
+								setFv_1_3(fv_1_3);
+								setFh_0_2(fh_0_2);
+								setFh_1_3(fh_1_3);
 								setFirst(first);
 							}
 						}
@@ -429,11 +577,11 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -449,30 +597,46 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		fv = false;
-		fh = false;
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
 		}
 		if (e.getActionCommand().equals("Flip vertically")) {
-			if (fv == false) {
-				fv = true;
-			} else {
-				fv = false;
+			if (position == 0 || position == 2) {
+				if (fv_0_2 == false) {
+					fv_0_2 = true;
+				} else {
+					fv_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fv_1_3 == false) {
+					fv_1_3 = true;
+				} else {
+					fv_1_3 = false;
+				}
 			}
 		}
 		if (e.getActionCommand().equals("Flip horizontally")) {
-			if (fh == false) {
-				fh = true;
-			} else {
-				fh = false;
+			if (position == 0 || position == 2) {
+				if (fh_0_2 == false) {
+					fh_0_2 = true;
+				} else {
+					fh_0_2 = false;
+				}
+			}
+			if (position == 1 || position == 3) {
+				if (fh_1_3 == false) {
+					fh_1_3 = true;
+				} else {
+					fh_1_3 = false;
+				}
 			}
 		}
 	}
@@ -501,31 +665,75 @@ public class ELNComponentResistor extends TGCScalableWithInternalComponent imple
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
+	}
+
+	public boolean isFv_0_2() {
+		return fv_0_2;
+	}
+
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
+	}
+
+	public boolean isFv_1_3() {
+		return fv_1_3;
+	}
+
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
-	public boolean isFv() {
-		return fv;
+	public boolean isFh_0_2() {
+		return fh_0_2;
 	}
 
-	public void setFv(boolean fv) {
-		this.fv = fv;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
-	public boolean isFh() {
-		return fh;
+	public boolean isFh_1_3() {
+		return fh_1_3;
 	}
 
-	public void setFh(boolean fh) {
-		this.fh = fh;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java b/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java
index 49033c022b2c37f9e16e0b0ee86f1260b67c61ec..ce0d07df4de7f2cf2c0e59478737f22d94d3be10 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentTransmissionLine.java
@@ -39,28 +39,28 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentTransmissionLine;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
- * Class ELNComponentTransmissionLine 
- * Transmission line to be used in ELN diagrams 
- * Creation: 15/06/2018
+ * Class ELNComponentTransmissionLine Transmission line to be used in ELN
+ * diagrams Creation: 15/06/2018
+ * 
  * @version 1.0 15/06/2018
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentTransmissionLine extends TGCScalableWithInternalComponent implements ActionListener {
+public class ELNComponentTransmissionLine extends
+		TGCScalableWithInternalComponent implements ActionListener,
+		SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -76,12 +76,19 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 	private String unit0, unit2;
 
 	private int position = 0;
-	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false,
+			fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
+
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
+	private ELNPortTerminal term2;
+	private ELNPortTerminal term3;
 
-	public ELNComponentTransmissionLine(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
-			TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentTransmissionLine(int _x, int _y, int _minX, int _maxX,
+			int _minY, int _maxY, boolean _pos, TGComponent _father,
+			TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(120, 80);
@@ -93,8 +100,6 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(4);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -108,19 +113,6 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 		setDelay("sc_core::SC_ZERO_TIME");
 		setDelta0(0.0);
 		setUnit2("Hz");
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "a1");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 0.0, "a2");
-		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "b1");
-		connectingPoint[3] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 1.0, "b2");
 	}
 
 	public Color getMyColor() {
@@ -128,12 +120,52 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y, this.minX, this.maxX, this.minY,
+					this.maxY, false, this.father, this.tdp);
+			term0.setValue("a1");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y, true, false);
+
+			term1 = new ELNPortTerminal(x + width - width / 12, y, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term1.setValue("a2");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1,
+					x + width - width / 12, y, true, false);
+
+			term2 = new ELNPortTerminal(x, y + height - height / 8, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term2.setValue("b1");
+			getTDiagramPanel().getComponentList().add(term2);
+			term2.getTDiagramPanel().addComponent(term2, x,
+					y + height - height / 8, true, false);
+
+			term3 = new ELNPortTerminal(x + width - width / 12, y + height
+					- height / 8, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term3.setValue("b2");
+			getTDiagramPanel().getComponentList().add(term3);
+			term3.getTDiagramPanel().addComponent(term3,
+					x + width - width / 12, y + height - height / 8, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
 		if (this.rescaled && !this.tdp.isScaled()) {
 			this.rescaled = false;
-			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			int maxCurrentFontSize = Math.max(
+					0,
+					Math.min(this.height,
+							(int) (this.maxFontSize * this.tdp.getZoom())));
 			f = f.deriveFont((float) maxCurrentFontSize);
 
 			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
@@ -186,77 +218,129 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 12, y, true);
+				term2.setMoveCd(x, y + height - height / 8, true);
+				term3.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 12, y, true);
+				term3.setMoveCd(x, y + height - height / 8, true);
+				term2.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 12, y, true);
+				term0.setMoveCd(x, y + height - height / 8, true);
+				term1.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 12, y, true);
+				term1.setMoveCd(x, y + height - height / 8, true);
+				term0.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -288,77 +372,129 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 8, y, true);
+				term3.setMoveCd(x, y + height - height / 12, true);
+				term1.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 8, y, true);
+				term2.setMoveCd(x, y + height - height / 12, true);
+				term0.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 8, y, true);
+				term1.setMoveCd(x, y + height - height / 12, true);
+				term3.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 8, y, true);
+				term0.setMoveCd(x, y + height - height / 12, true);
+				term2.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -390,77 +526,129 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 12, y, true);
+				term1.setMoveCd(x, y + height - height / 8, true);
+				term0.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 12, y, true);
+				term0.setMoveCd(x, y + height - height / 8, true);
+				term1.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 12, y, true);
+				term3.setMoveCd(x, y + height - height / 8, true);
+				term2.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 12, y, true);
+				term2.setMoveCd(x, y + height - height / 8, true);
+				term3.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -492,77 +680,129 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 8, y, true);
+				term0.setMoveCd(x, y + height - height / 12, true);
+				term2.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 8, y, true);
+				term1.setMoveCd(x, y + height - height / 12, true);
+				term3.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 8, y, true);
+				term2.setMoveCd(x, y + height - height / 12, true);
+				term0.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 8, y, true);
+				term3.setMoveCd(x, y + height - height / 12, true);
+				term1.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 		}
 		g.setColor(c);
@@ -570,24 +810,31 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 	}
 
 	private void rotateTopBottom(Graphics g) {
-		int[] ptx0 = { x, x + width / 6, x + 5 * width / 6, x + width, x + 5 * width / 6, x + width / 6 };
-		int[] pty0 = { y, y + height / 2 - height / 8, y + height / 2 - height / 8, y, y + height / 2 - height / 8,
+		int[] ptx0 = { x, x + width / 6, x + 5 * width / 6, x + width,
+				x + 5 * width / 6, x + width / 6 };
+		int[] pty0 = { y, y + height / 2 - height / 8,
+				y + height / 2 - height / 8, y, y + height / 2 - height / 8,
 				y + height / 2 - height / 8 };
 		g.drawPolygon(ptx0, pty0, 6);
-		int[] ptx1 = { x, x + width / 6, x + 5 * width / 6, x + width, x + 5 * width / 6, x + width / 6 };
-		int[] pty1 = { y + height, y + height / 2 + height / 8, y + height / 2 + height / 8, y + height,
+		int[] ptx1 = { x, x + width / 6, x + 5 * width / 6, x + width,
+				x + 5 * width / 6, x + width / 6 };
+		int[] pty1 = { y + height, y + height / 2 + height / 8,
+				y + height / 2 + height / 8, y + height,
 				y + height / 2 + height / 8, y + height / 2 + height / 8 };
 		g.drawPolygon(ptx1, pty1, 6);
 	}
 
 	private void rotateRightLeft(Graphics g) {
-		int[] ptx0 = { x, x + width / 2 - width / 8, x + width / 2 - width / 8, x, x + width / 2 - width / 8,
-				x + width / 2 - width / 8 };
-		int[] pty0 = { y, y + height / 6, y + 5 * height / 6, y + height, y + 5 * height / 6, y + height / 6 };
+		int[] ptx0 = { x, x + width / 2 - width / 8, x + width / 2 - width / 8,
+				x, x + width / 2 - width / 8, x + width / 2 - width / 8 };
+		int[] pty0 = { y, y + height / 6, y + 5 * height / 6, y + height,
+				y + 5 * height / 6, y + height / 6 };
 		g.drawPolygon(ptx0, pty0, 6);
-		int[] ptx1 = { x + width, x + width / 2 + width / 8, x + width / 2 + width / 8, x + width,
+		int[] ptx1 = { x + width, x + width / 2 + width / 8,
+				x + width / 2 + width / 8, x + width,
 				x + width / 2 + width / 8, x + width / 2 + width / 8 };
-		int[] pty1 = { y, y + height / 6, y + 5 * height / 6, y + height, y + 5 * height / 6, y + height / 6 };
+		int[] pty1 = { y, y + height / 6, y + 5 * height / 6, y + height,
+				y + 5 * height / 6, y + height / 6 };
 		g.drawPolygon(ptx1, pty1, 6);
 	}
 
@@ -603,7 +850,8 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 	}
 
 	public boolean editOndoubleClick(JFrame frame) {
-		JDialogELNComponentTransmissionLine jde = new JDialogELNComponentTransmissionLine(this);
+		JDialogELNComponentTransmissionLine jde = new JDialogELNComponentTransmissionLine(
+				this);
 		jde.setVisible(true);
 		return true;
 	}
@@ -648,7 +896,8 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 		return new String(sb);
 	}
 
-	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId)
+			throws MalformedModelingException {
 		try {
 			NodeList nli;
 			Node n1, n2;
@@ -672,16 +921,25 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 								z0 = Double.parseDouble(elt.getAttribute("z0"));
 								unit0 = elt.getAttribute("unit0");
 								delay = elt.getAttribute("delay");
-								delta0 = Double.parseDouble(elt.getAttribute("delta0"));
+								delta0 = Double.parseDouble(elt
+										.getAttribute("delta0"));
 								unit2 = elt.getAttribute("unit2");
-								position = Integer.parseInt(elt.getAttribute("position"));
-								width = Integer.parseInt(elt.getAttribute("width"));
-								height = Integer.parseInt(elt.getAttribute("height"));
-								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
-								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
-								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
-								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
-								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								position = Integer.parseInt(elt
+										.getAttribute("position"));
+								width = Integer.parseInt(elt
+										.getAttribute("width"));
+								height = Integer.parseInt(elt
+										.getAttribute("height"));
+								fv_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt
+										.getAttribute("first"));
 								setZ0(z0);
 								setUnit0(unit0);
 								setDelay(delay);
@@ -705,14 +963,15 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 		}
 	}
 
-	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+	public void addActionToPopupMenu(JPopupMenu componentMenu,
+			ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -728,12 +987,12 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
@@ -820,47 +1079,75 @@ public class ELNComponentTransmissionLine extends TGCScalableWithInternalCompone
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
 	}
 
 	public boolean isFv_0_2() {
 		return fv_0_2;
 	}
 
-	public void setFv_0_2(boolean fv_0_2) {
-		this.fv_0_2 = fv_0_2;
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
 	}
 
 	public boolean isFv_1_3() {
 		return fv_1_3;
 	}
 
-	public void setFv_1_3(boolean fv_1_3) {
-		this.fv_1_3 = fv_1_3;
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
 	public boolean isFh_0_2() {
 		return fh_0_2;
 	}
 
-	public void setFh_0_2(boolean fh_0_2) {
-		this.fh_0_2 = fh_0_2;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
 	public boolean isFh_1_3() {
 		return fh_1_3;
 	}
 
-	public void setFh_1_3(boolean fh_1_3) {
-		this.fh_1_3 = fh_1_3;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java
index b5f7dcadbb4fdaa6933b332fa58645dafa75a229..f989a7e6d09304397acb03558f3f7a79c8268833 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledCurrentSource.java
@@ -39,29 +39,28 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentVoltageControlledCurrentSource;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
- * Class ELNComponentVoltageControlledCurrentSource 
- * Voltage controlled current source to be used in ELN diagrams 
- * Creation: 13/06/2018
+ * Class ELNComponentVoltageControlledCurrentSource Voltage controlled current
+ * source to be used in ELN diagrams Creation: 13/06/2018
+ * 
  * @version 1.0 13/06/2018
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithInternalComponent
-		implements ActionListener {
+public class ELNComponentVoltageControlledCurrentSource extends
+		TGCScalableWithInternalComponent implements ActionListener,
+		SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -76,12 +75,19 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 	private String unit;
 
 	private int position = 0;
-	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false,
+			fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
 
-	public ELNComponentVoltageControlledCurrentSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
-			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
+	private ELNPortTerminal term2;
+	private ELNPortTerminal term3;
+
+	public ELNComponentVoltageControlledCurrentSource(int _x, int _y,
+			int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
+			TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(120, 80);
@@ -93,8 +99,6 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(4);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -105,19 +109,6 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 
 		setVal(1.0);
 		setUnit("S");
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "ncp");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 0.0, "np");
-		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "ncn");
-		connectingPoint[3] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 1.0, "nn");
 	}
 
 	public Color getMyColor() {
@@ -125,12 +116,52 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y, this.minX, this.maxX, this.minY,
+					this.maxY, false, this.father, this.tdp);
+			term0.setValue("ncp");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y, true, false);
+
+			term1 = new ELNPortTerminal(x + width - width / 12, y, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term1.setValue("np");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1,
+					x + width - width / 12, y, true, false);
+
+			term2 = new ELNPortTerminal(x, y + height - height / 8, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term2.setValue("ncn");
+			getTDiagramPanel().getComponentList().add(term2);
+			term2.getTDiagramPanel().addComponent(term2, x,
+					y + height - height / 8, true, false);
+
+			term3 = new ELNPortTerminal(x + width - width / 12, y + height
+					- height / 8, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term3.setValue("nn");
+			getTDiagramPanel().getComponentList().add(term3);
+			term3.getTDiagramPanel().addComponent(term3,
+					x + width - width / 12, y + height - height / 8, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
 		if (this.rescaled && !this.tdp.isScaled()) {
 			this.rescaled = false;
-			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			int maxCurrentFontSize = Math.max(
+					0,
+					Math.min(this.height,
+							(int) (this.maxFontSize * this.tdp.getZoom())));
 			f = f.deriveFont((float) maxCurrentFontSize);
 
 			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
@@ -182,80 +213,132 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 12, y, true);
+				term2.setMoveCd(x, y + height - height / 8, true);
+				term3.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 12, y, true);
+				term3.setMoveCd(x, y + height - height / 8, true);
+				term2.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 12, y, true);
+				term0.setMoveCd(x, y + height - height / 8, true);
+				term1.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 12, y, true);
+				term1.setMoveCd(x, y + height - height / 8, true);
+				term0.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -286,80 +369,132 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 8, y, true);
+				term3.setMoveCd(x, y + height - height / 12, true);
+				term1.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 8, y, true);
+				term2.setMoveCd(x, y + height - height / 12, true);
+				term0.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 8, y, true);
+				term1.setMoveCd(x, y + height - height / 12, true);
+				term3.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 8, y, true);
+				term0.setMoveCd(x, y + height - height / 12, true);
+				term2.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -390,80 +525,132 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 12, y, true);
+				term1.setMoveCd(x, y + height - height / 8, true);
+				term0.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 12, y, true);
+				term0.setMoveCd(x, y + height - height / 8, true);
+				term1.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 12, y, true);
+				term3.setMoveCd(x, y + height - height / 8, true);
+				term2.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 12, y, true);
+				term2.setMoveCd(x, y + height - height / 8, true);
+				term3.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -494,80 +681,132 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 8, y, true);
+				term0.setMoveCd(x, y + height - height / 12, true);
+				term2.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 8, y, true);
+				term1.setMoveCd(x, y + height - height / 12, true);
+				term3.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 8, y, true);
+				term2.setMoveCd(x, y + height - height / 12, true);
+				term0.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 8, y, true);
+				term3.setMoveCd(x, y + height - height / 12, true);
+				term1.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 		}
 		g.setColor(c);
@@ -576,61 +815,89 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 
 	private void rotateTop(Graphics g) {
 		int[] ptx0 = { x, x + 2 * width / 6 };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x, x + 2 * width / 6 };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6, x + 3 * width / 6, x + 4 * width / 6,
-				x + 4 * width / 6, x + width, x + 4 * width / 6, x + 4 * width / 6, x + 5 * width / 6,
-				x + 3 * width / 6, x + 5 * width / 6, x + 4 * width / 6, x + 4 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height, y + height, y + height,
-				y + 3 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + height / 4, y };
+		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6,
+				x + 3 * width / 6, x + 4 * width / 6, x + 4 * width / 6,
+				x + width, x + 4 * width / 6, x + 4 * width / 6,
+				x + 5 * width / 6, x + 3 * width / 6, x + 5 * width / 6,
+				x + 4 * width / 6, x + 4 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + 3 * height / 4,
+				y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4,
+				y + height / 4, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
-				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height / 8, y + height / 8, y + height / 16, y + height / 8 + height / 16, y + height / 8,
-				y + height / 8 };
+		int[] pty3 = { y + height / 4, y + height / 4,
+				y + height / 4 - height / 16, y + height / 4 + height / 16,
+				y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height - height / 8, y + height - height / 8 };
+		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 24 };
+		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 12, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 6, x + 5 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8,
-				y + 3 * height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8 };
+		int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24,
+				x + 5 * width / 6 + width / 12 + width / 24,
+				x + 5 * width / 6 + width / 12,
+				x + 5 * width / 6 + width / 12 + width / 24,
+				x + 5 * width / 6 + width / 6,
+				x + 5 * width / 6 + width / 12 + width / 24 };
+		int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8,
+				y + 3 * height / 4 - height / 8, y + 3 * height / 4,
+				y + 3 * height / 4 - height / 8,
+				y + 3 * height / 4 - height / 8 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
 	}
 
 	private void rotateTopFlip(Graphics g) {
 		int[] ptx0 = { x, x + 2 * width / 6 };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x, x + 2 * width / 6 };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6, x + 3 * width / 6, x + 4 * width / 6,
-				x + 4 * width / 6, x + width, x + 4 * width / 6, x + 4 * width / 6, x + 5 * width / 6,
-				x + 3 * width / 6, x + 5 * width / 6, x + 4 * width / 6, x + 4 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height, y + height, y + height,
-				y + 3 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + height / 4, y };
+		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6,
+				x + 3 * width / 6, x + 4 * width / 6, x + 4 * width / 6,
+				x + width, x + 4 * width / 6, x + 4 * width / 6,
+				x + 5 * width / 6, x + 3 * width / 6, x + 5 * width / 6,
+				x + 4 * width / 6, x + 4 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + 3 * height / 4,
+				y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4,
+				y + height / 4, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
-				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height - height / 8, y + height - height / 8, y + height - height / 16,
-				y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 8 };
+		int[] pty3 = { y + height - height / 4, y + height - height / 4,
+				y + height - height / 4 + height / 16,
+				y + height - height / 4 - height / 16, y + height - height / 4,
+				y + height - height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height / 8, y + height / 8 };
+		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 24 };
+		int[] pty4 = { y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 12, x + 5 * width / 6 + width / 12 + width / 24,
-				x + 5 * width / 6 + width / 6, x + 5 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8, y + height / 4 + height / 8, y + height / 4,
+		int[] ptx5 = { x + 5 * width / 6 + width / 12 + width / 24,
+				x + 5 * width / 6 + width / 12 + width / 24,
+				x + 5 * width / 6 + width / 12,
+				x + 5 * width / 6 + width / 12 + width / 24,
+				x + 5 * width / 6 + width / 6,
+				x + 5 * width / 6 + width / 12 + width / 24 };
+		int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8,
+				y + height / 4 + height / 8, y + height / 4,
 				y + height / 4 + height / 8, y + height / 4 + height / 8 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
@@ -638,30 +905,43 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 
 	private void rotateBottom(Graphics g) {
 		int[] ptx0 = { x + 4 * width / 6, x + width };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x + 4 * width / 6, x + width };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6, x + 2 * width / 6, x + 2 * width / 6, x,
-				x + 2 * width / 6, x + 2 * width / 6, x + 3 * width / 6, x + width / 6, x + 3 * width / 6,
-				x + 2 * width / 6, x + 2 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height, y + height, y + height,
-				y + 3 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + height / 4, y };
+		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6,
+				x + 2 * width / 6, x + 2 * width / 6, x, x + 2 * width / 6,
+				x + 2 * width / 6, x + 3 * width / 6, x + width / 6,
+				x + 3 * width / 6, x + 2 * width / 6, x + 2 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + 3 * height / 4,
+				y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4,
+				y + height / 4, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
+		int[] ptx3 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty3 = { y + height - height / 8, y + height - height / 8, y + height - height / 16,
-				y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 8 };
+		int[] pty3 = { y + height - height / 4, y + height - height / 4,
+				y + height - height / 4 + height / 16,
+				y + height - height / 4 - height / 16, y + height - height / 4,
+				y + height - height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty4 = { y + height / 8, y + height / 8 };
+		int[] ptx4 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12 + width / 24 };
+		int[] pty4 = { y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 12 - width / 24,
-				x + width / 6 - width / 12, x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 6,
+		int[] ptx5 = { x + width / 6 - width / 12 - width / 24,
+				x + width / 6 - width / 12 - width / 24,
+				x + width / 6 - width / 12,
+				x + width / 6 - width / 12 - width / 24,
+				x + width / 6 - width / 6,
 				x + width / 6 - width / 12 - width / 24 };
-		int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8, y + height / 4 + height / 8, y + height / 4,
+		int[] pty5 = { y + 3 * height / 4, y + height / 4 + height / 8,
+				y + height / 4 + height / 8, y + height / 4,
 				y + height / 4 + height / 8, y + height / 4 + height / 8 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
@@ -669,155 +949,226 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 
 	private void rotateBottomFlip(Graphics g) {
 		int[] ptx0 = { x + 4 * width / 6, x + width };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x + 4 * width / 6, x + width };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6, x + 2 * width / 6, x + 2 * width / 6, x,
-				x + 2 * width / 6, x + 2 * width / 6, x + 3 * width / 6, x + width / 6, x + 3 * width / 6,
-				x + 2 * width / 6, x + 2 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height, y + height, y + height,
-				y + 3 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4, y + height / 4, y };
+		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6,
+				x + 2 * width / 6, x + 2 * width / 6, x, x + 2 * width / 6,
+				x + 2 * width / 6, x + 3 * width / 6, x + width / 6,
+				x + 3 * width / 6, x + 2 * width / 6, x + 2 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + 3 * height / 4,
+				y + 2 * height / 4, y + 2 * height / 4, y + 2 * height / 4,
+				y + height / 4, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
+		int[] ptx3 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty3 = { y + height / 8, y + height / 8, y + height / 16, y + height / 8 + height / 16, y + height / 8,
-				y + height / 8 };
+		int[] pty3 = { y + height / 4, y + height / 4,
+				y + height / 4 - height / 16, y + height / 4 + height / 16,
+				y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty4 = { y + height - height / 8, y + height - height / 8 };
+		int[] ptx4 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12 + width / 24 };
+		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 12 - width / 24,
-				x + width / 6 - width / 12, x + width / 6 - width / 12 - width / 24, x + width / 6 - width / 6,
+		int[] ptx5 = { x + width / 6 - width / 12 - width / 24,
+				x + width / 6 - width / 12 - width / 24,
+				x + width / 6 - width / 12,
+				x + width / 6 - width / 12 - width / 24,
+				x + width / 6 - width / 6,
 				x + width / 6 - width / 12 - width / 24 };
-		int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8,
-				y + 3 * height / 4, y + 3 * height / 4 - height / 8, y + 3 * height / 4 - height / 8 };
+		int[] pty5 = { y + height / 4, y + 3 * height / 4 - height / 8,
+				y + 3 * height / 4 - height / 8, y + 3 * height / 4,
+				y + 3 * height / 4 - height / 8,
+				y + 3 * height / 4 - height / 8 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
 	}
 
 	private void rotateRight(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width, x + width, x + width,
-				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + width / 4, x };
-		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6, y + 3 * height / 6, y + 4 * height / 6,
-				y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6, y + 5 * height / 6,
-				y + 3 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16,
+				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4,
+				x + 2 * width / 4, x + width / 4, x + width / 16 };
+		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6,
+				y + 3 * height / 6, y + 4 * height / 6, y + 4 * height / 6,
+				y + height, y + 4 * height / 6, y + 4 * height / 6,
+				y + 5 * height / 6, y + 3 * height / 6, y + 5 * height / 6,
+				y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width - width / 8, x + width - width / 8, x + width - width / 16,
-				x + width - width / 8 - width / 16, x + width - width / 8, x + width - width / 8 };
-		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
-				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
+		int[] ptx3 = { x + width - width / 4, x + width - width / 4,
+				x + width - width / 4 + width / 16,
+				x + width - width / 4 - width / 16, x + width - width / 4,
+				x + width - width / 4 };
+		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 8, x + width / 8 };
-		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
+		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8, x + width / 4 + width / 8, x + width / 4,
+		int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8,
+				x + width / 4 + width / 8, x + width / 4,
 				x + width / 4 + width / 8, x + width / 4 + width / 8 };
-		int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 12, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 6, y + 5 * height / 6 + height / 12 + height / 24 };
+		int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24,
+				y + 5 * height / 6 + height / 12 + height / 24,
+				y + 5 * height / 6 + height / 12,
+				y + 5 * height / 6 + height / 12 + height / 24,
+				y + 5 * height / 6 + height / 6,
+				y + 5 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
 	}
 
 	private void rotateRightFlip(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width, x + width, x + width,
-				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + width / 4, x };
-		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6, y + height / 6, y + 2 * height / 6,
-				y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6, y + height / 6,
-				y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16,
+				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4,
+				x + 2 * width / 4, x + width / 4, x + width / 16 };
+		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6,
+				y + height / 6, y + 2 * height / 6, y + 2 * height / 6, y,
+				y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6,
+				y + height / 6, y + 3 * height / 6, y + 2 * height / 6,
+				y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width - width / 8, x + width - width / 8, x + width - width / 16,
-				x + width - width / 8 - width / 16, x + width - width / 8, x + width - width / 8 };
-		int[] pty3 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
-				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
+		int[] ptx3 = { x + width - width / 4, x + width - width / 4,
+				x + width - width / 4 + width / 16,
+				x + width - width / 4 - width / 16, x + width - width / 4,
+				x + width - width / 4 };
+		int[] pty3 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 8, x + width / 8 };
-		int[] pty4 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
+		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] pty4 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8, x + width / 4 + width / 8, x + width / 4,
+		int[] ptx5 = { x + 3 * width / 4, x + width / 4 + width / 8,
+				x + width / 4 + width / 8, x + width / 4,
 				x + width / 4 + width / 8, x + width / 4 + width / 8 };
-		int[] pty5 = { y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 12 - height / 24,
-				y + height / 6 - height / 12, y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 6,
+		int[] pty5 = { y + height / 6 - height / 12 - height / 24,
+				y + height / 6 - height / 12 - height / 24,
+				y + height / 6 - height / 12,
+				y + height / 6 - height / 12 - height / 24,
+				y + height / 6 - height / 6,
 				y + height / 6 - height / 12 - height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
 	}
 
 	private void rotateLeft(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width, x + width, x + width,
-				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + width / 4, x };
-		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6, y + height / 6, y + 2 * height / 6,
-				y + 2 * height / 6, y, y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6, y + height / 6,
-				y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16,
+				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4,
+				x + 2 * width / 4, x + width / 4, x + width / 16 };
+		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6,
+				y + height / 6, y + 2 * height / 6, y + 2 * height / 6, y,
+				y + 2 * height / 6, y + 2 * height / 6, y + 3 * height / 6,
+				y + height / 6, y + 3 * height / 6, y + 2 * height / 6,
+				y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width / 8, x + width / 8, x + width / 16, x + width / 8 + width / 16, x + width / 8,
-				x + width / 8 };
-		int[] pty3 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
-				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
+		int[] ptx3 = { x + width / 4, x + width / 4,
+				x + width / 4 - width / 16, x + width / 4 + width / 16,
+				x + width / 4, x + width / 4 };
+		int[] pty3 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 8, x + width - width / 8 };
-		int[] pty4 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
+		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] pty4 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8, x + 3 * width / 4,
+		int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8,
+				x + 3 * width / 4 - width / 8, x + 3 * width / 4,
 				x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8 };
-		int[] pty5 = { y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 12 - height / 24,
-				y + height / 6 - height / 12, y + height / 6 - height / 12 - height / 24, y + height / 6 - height / 6,
+		int[] pty5 = { y + height / 6 - height / 12 - height / 24,
+				y + height / 6 - height / 12 - height / 24,
+				y + height / 6 - height / 12,
+				y + height / 6 - height / 12 - height / 24,
+				y + height / 6 - height / 6,
 				y + height / 6 - height / 12 - height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
 	}
 
 	private void rotateLeftFlip(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width, x + width, x + width,
-				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + 2 * width / 4, x + width / 4, x };
-		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6, y + 3 * height / 6, y + 4 * height / 6,
-				y + 4 * height / 6, y + height, y + 4 * height / 6, y + 4 * height / 6, y + 5 * height / 6,
-				y + 3 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16,
+				x + 3 * width / 4, x + 2 * width / 4, x + 2 * width / 4,
+				x + 2 * width / 4, x + width / 4, x + width / 16 };
+		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6,
+				y + 3 * height / 6, y + 4 * height / 6, y + 4 * height / 6,
+				y + height, y + 4 * height / 6, y + 4 * height / 6,
+				y + 5 * height / 6, y + 3 * height / 6, y + 5 * height / 6,
+				y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 14);
-		int[] ptx3 = { x + width / 8, x + width / 8, x + width / 16, x + width / 8 + width / 16, x + width / 8,
-				x + width / 8 };
-		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
-				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
+		int[] ptx3 = { x + width / 4, x + width / 4,
+				x + width / 4 - width / 16, x + width / 4 + width / 16,
+				x + width / 4, x + width / 4 };
+		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 8, x + width - width / 8 };
-		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
+		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8, x + 3 * width / 4,
+		int[] ptx5 = { x + width / 4, x + 3 * width / 4 - width / 8,
+				x + 3 * width / 4 - width / 8, x + 3 * width / 4,
 				x + 3 * width / 4 - width / 8, x + 3 * width / 4 - width / 8 };
-		int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 12, y + 5 * height / 6 + height / 12 + height / 24,
-				y + 5 * height / 6 + height / 6, y + 5 * height / 6 + height / 12 + height / 24 };
+		int[] pty5 = { y + 5 * height / 6 + height / 12 + height / 24,
+				y + 5 * height / 6 + height / 12 + height / 24,
+				y + 5 * height / 6 + height / 12,
+				y + 5 * height / 6 + height / 12 + height / 24,
+				y + 5 * height / 6 + height / 6,
+				y + 5 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
 		g.fillPolygon(ptx5, pty5, 6);
 	}
@@ -874,7 +1225,8 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		return new String(sb);
 	}
 
-	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId)
+			throws MalformedModelingException {
 		try {
 			NodeList nli;
 			Node n1, n2;
@@ -894,16 +1246,25 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 						if (n2.getNodeType() == Node.ELEMENT_NODE) {
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
-								value = Double.parseDouble(elt.getAttribute("value"));
+								value = Double.parseDouble(elt
+										.getAttribute("value"));
 								unit = elt.getAttribute("unit");
-								position = Integer.parseInt(elt.getAttribute("position"));
-								width = Integer.parseInt(elt.getAttribute("width"));
-								height = Integer.parseInt(elt.getAttribute("height"));
-								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
-								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
-								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
-								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
-								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								position = Integer.parseInt(elt
+										.getAttribute("position"));
+								width = Integer.parseInt(elt
+										.getAttribute("width"));
+								height = Integer.parseInt(elt
+										.getAttribute("height"));
+								fv_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt
+										.getAttribute("first"));
 								setVal(value);
 								setUnit(unit);
 								setPosition(position);
@@ -924,14 +1285,15 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		}
 	}
 
-	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+	public void addActionToPopupMenu(JPopupMenu componentMenu,
+			ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -947,12 +1309,12 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
@@ -1015,47 +1377,75 @@ public class ELNComponentVoltageControlledCurrentSource extends TGCScalableWithI
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
 	}
 
 	public boolean isFv_0_2() {
 		return fv_0_2;
 	}
 
-	public void setFv_0_2(boolean fv_0_2) {
-		this.fv_0_2 = fv_0_2;
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
 	}
 
 	public boolean isFv_1_3() {
 		return fv_1_3;
 	}
 
-	public void setFv_1_3(boolean fv_1_3) {
-		this.fv_1_3 = fv_1_3;
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
 	public boolean isFh_0_2() {
 		return fh_0_2;
 	}
 
-	public void setFh_0_2(boolean fh_0_2) {
-		this.fh_0_2 = fh_0_2;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
 	public boolean isFh_1_3() {
 		return fh_1_3;
 	}
 
-	public void setFh_1_3(boolean fh_1_3) {
-		this.fh_1_3 = fh_1_3;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java
index 4854a11e913acc0498fd195ade08c8357bc89a30..062209cb2d85d4a483fd73e4565704487ef57b02 100644
--- a/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java
+++ b/src/main/java/ui/eln/sca_eln/ELNComponentVoltageControlledVoltageSource.java
@@ -39,29 +39,28 @@
 package ui.eln.sca_eln;
 
 import myutil.GraphicLib;
-
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import ui.*;
-import ui.eln.ELNConnectingPoint;
+import ui.eln.*;
 import ui.window.JDialogELNComponentVoltageControlledVoltageSource;
-
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
- * Class ELNComponentVoltageControlledVoltageSource 
- * Voltage controlled voltage source to be used in ELN diagrams 
- * Creation: 13/06/2018
+ * Class ELNComponentVoltageControlledVoltageSource Voltage controlled voltage
+ * source to be used in ELN diagrams Creation: 13/06/2018
+ * 
  * @version 1.0 13/06/2018
  * @author Irina Kit Yan LEE
  */
 
-public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithInternalComponent
-		implements ActionListener {
+public class ELNComponentVoltageControlledVoltageSource extends
+		TGCScalableWithInternalComponent implements ActionListener,
+		SwallowTGComponent, ELNComponent {
 	protected Color myColor;
 	protected int orientation;
 	private int maxFontSize = 14;
@@ -75,12 +74,19 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 	private double val;
 
 	private int position = 0;
-	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false, fh_1_3 = false;
+	private boolean fv_0_2 = false, fv_1_3 = false, fh_0_2 = false,
+			fh_1_3 = false;
 	private int old;
-	private boolean first;
+	private boolean first, f = true;
+
+	private ELNPortTerminal term0;
+	private ELNPortTerminal term1;
+	private ELNPortTerminal term2;
+	private ELNPortTerminal term3;
 
-	public ELNComponentVoltageControlledVoltageSource(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY,
-			boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
+	public ELNComponentVoltageControlledVoltageSource(int _x, int _y,
+			int _minX, int _maxX, int _minY, int _maxY, boolean _pos,
+			TGComponent _father, TDiagramPanel _tdp) {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
 		initScaling(120, 80);
@@ -92,8 +98,6 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(4);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -103,19 +107,6 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		value = tdp.findELNComponentName("VCVS");
 
 		setVal(1.0);
-
-		old = width;
-		width = height;
-		height = old;
-	}
-
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "ncp");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 0.0, "np");
-		connectingPoint[2] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "ncn");
-		connectingPoint[3] = new ELNConnectingPoint(this, 0, 0, true, true, 1.0, 1.0, "nn");
 	}
 
 	public Color getMyColor() {
@@ -123,12 +114,52 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 	}
 
 	public void internalDrawing(Graphics g) {
+		if (f == true) {
+			term0 = new ELNPortTerminal(x, y, this.minX, this.maxX, this.minY,
+					this.maxY, false, this.father, this.tdp);
+			term0.setValue("ncp");
+			getTDiagramPanel().getComponentList().add(term0);
+			term0.getTDiagramPanel().addComponent(term0, x, y, true, false);
+
+			term1 = new ELNPortTerminal(x + width - width / 12, y, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term1.setValue("np");
+			getTDiagramPanel().getComponentList().add(term1);
+			term1.getTDiagramPanel().addComponent(term1,
+					x + width - width / 12, y, true, false);
+
+			term2 = new ELNPortTerminal(x, y + height - height / 8, this.minX,
+					this.maxX, this.minY, this.maxY, false, this.father,
+					this.tdp);
+			term2.setValue("ncn");
+			getTDiagramPanel().getComponentList().add(term2);
+			term2.getTDiagramPanel().addComponent(term2, x,
+					y + height - height / 8, true, false);
+
+			term3 = new ELNPortTerminal(x + width - width / 12, y + height
+					- height / 8, this.minX, this.maxX, this.minY, this.maxY,
+					false, this.father, this.tdp);
+			term3.setValue("nn");
+			getTDiagramPanel().getComponentList().add(term3);
+			term3.getTDiagramPanel().addComponent(term3,
+					x + width - width / 12, y + height - height / 8, true,
+					false);
+			old = width;
+			width = height;
+			height = old;
+			f = false;
+		}
+
 		Font f = g.getFont();
 		Font fold = f;
 
 		if (this.rescaled && !this.tdp.isScaled()) {
 			this.rescaled = false;
-			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			int maxCurrentFontSize = Math.max(
+					0,
+					Math.min(this.height,
+							(int) (this.maxFontSize * this.tdp.getZoom())));
 			f = f.deriveFont((float) maxCurrentFontSize);
 
 			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
@@ -180,80 +211,132 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 12, y, true);
+				term2.setMoveCd(x, y + height - height / 8, true);
+				term3.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 12, y, true);
+				term3.setMoveCd(x, y + height - height / 8, true);
+				term2.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 12, y, true);
+				term0.setMoveCd(x, y + height - height / 8, true);
+				term1.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 12, y, true);
+				term1.setMoveCd(x, y + height - height / 8, true);
+				term0.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 		} else if (position == 1) {
 			if (first == false) {
@@ -284,80 +367,132 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 8, y, true);
+				term3.setMoveCd(x, y + height - height / 12, true);
+				term1.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 8, y, true);
+				term2.setMoveCd(x, y + height - height / 12, true);
+				term0.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 8, y, true);
+				term1.setMoveCd(x, y + height - height / 12, true);
+				term3.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 8, y, true);
+				term0.setMoveCd(x, y + height - height / 12, true);
+				term2.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 		} else if (position == 2) {
 			if (first == false) {
@@ -388,80 +523,132 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateBottom(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 12, y, true);
+				term1.setMoveCd(x, y + height - height / 8, true);
+				term0.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y);
+				g.drawString(term2.getValue(), x + width + height / 8, y);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term0.getValue(), x + width + height / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateTopFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 12, y, true);
+				term0.setMoveCd(x, y + height - height / 8, true);
+				term1.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y);
+				g.drawString(term3.getValue(), x + width + height / 8, y);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term1.getValue(), x + width + height / 8, y
+						+ height + sh1);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateBottomFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - height / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - height / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + height / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 12, y, true);
+				term3.setMoveCd(x, y + height - height / 8, true);
+				term2.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - height / 8 - sw1, y);
+				g.drawString(term0.getValue(), x + width + height / 8, y);
+				g.drawString(term3.getValue(), x - height / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term2.getValue(), x + width + height / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateTop(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - height / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + height / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - height / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + height / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 12, y, true);
+				term2.setMoveCd(x, y + height - height / 8, true);
+				term3.setMoveCd(x + width - width / 12,
+						y + height - height / 8, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - height / 8 - sw0, y);
+				g.drawString(term1.getValue(), x + width + height / 8, y);
+				g.drawString(term2.getValue(), x - height / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term3.getValue(), x + width + height / 8, y
+						+ height + sh3);
 			}
 		} else if (position == 3) {
 			if (first == false) {
@@ -492,80 +679,132 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)) {
 				rotateLeft(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0,
-						y + height + sh0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8,
-						y + height + sh2);
+				term1.setMoveCd(x, y, true);
+				term3.setMoveCd(x + width - width / 8, y, true);
+				term0.setMoveCd(x, y + height - height / 12, true);
+				term2.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y);
+				g.drawString(term3.getValue(), x + width + width / 8, y);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y + height
+						+ sh0);
+				g.drawString(term2.getValue(), x + width + width / 8, y
+						+ height + sh2);
 			}
 			if ((fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)) {
 				rotateLeftFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x - width / 8 - sw0, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x - width / 8 - sw1,
-						y + height + sh1);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x + width + width / 8,
-						y + height + sh3);
+				term0.setMoveCd(x, y, true);
+				term2.setMoveCd(x + width - width / 8, y, true);
+				term1.setMoveCd(x, y + height - height / 12, true);
+				term3.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term0.getValue(), x - width / 8 - sw0, y);
+				g.drawString(term2.getValue(), x + width + width / 8, y);
+				g.drawString(term1.getValue(), x - width / 8 - sw1, y + height
+						+ sh1);
+				g.drawString(term3.getValue(), x + width + width / 8, y
+						+ height + sh3);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == true && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == true && fh_1_3 == false)) {
 				rotateRightFlip(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(0.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2,
-						y + height + sh2);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8,
-						y + height + sh0);
+				term3.setMoveCd(x, y, true);
+				term1.setMoveCd(x + width - width / 8, y, true);
+				term2.setMoveCd(x, y + height - height / 12, true);
+				term0.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y);
+				g.drawString(term1.getValue(), x + width + width / 8, y);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y + height
+						+ sh2);
+				g.drawString(term0.getValue(), x + width + width / 8, y
+						+ height + sh0);
 			}
 			if ((fv_0_2 == true && fv_1_3 == false && fh_0_2 == true && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == true && fh_0_2 == false && fh_1_3 == true)
 					|| (fv_0_2 == true && fv_1_3 == true && fh_0_2 == false && fh_1_3 == false)
 					|| (fv_0_2 == false && fv_1_3 == false && fh_0_2 == true && fh_1_3 == true)) {
 				rotateRight(g);
-				((ELNConnectingPoint) connectingPoint[0]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[0]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[1]).setW(1.0);
-				((ELNConnectingPoint) connectingPoint[1]).setH(1.0);
-				((ELNConnectingPoint) connectingPoint[2]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[2]).setH(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setW(0.0);
-				((ELNConnectingPoint) connectingPoint[3]).setH(1.0);
-				g.drawString(((ELNConnectingPoint) connectingPoint[2]).getName(), x - width / 8 - sw2, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[0]).getName(), x + width + width / 8, y);
-				g.drawString(((ELNConnectingPoint) connectingPoint[3]).getName(), x - width / 8 - sw3,
-						y + height + sh3);
-				g.drawString(((ELNConnectingPoint) connectingPoint[1]).getName(), x + width + width / 8,
-						y + height + sh1);
+				term2.setMoveCd(x, y, true);
+				term0.setMoveCd(x + width - width / 8, y, true);
+				term3.setMoveCd(x, y + height - height / 12, true);
+				term1.setMoveCd(x + width - width / 8,
+						y + height - height / 12, true);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term2.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term0.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setW(0.0);
+				((ELNConnectingPoint) (term3.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setW(1.0);
+				((ELNConnectingPoint) (term1.getTGConnectingPointAtIndex(0)))
+						.setH(0.5);
+				g.drawString(term2.getValue(), x - width / 8 - sw2, y);
+				g.drawString(term0.getValue(), x + width + width / 8, y);
+				g.drawString(term3.getValue(), x - width / 8 - sw3, y + height
+						+ sh3);
+				g.drawString(term1.getValue(), x + width + width / 8, y
+						+ height + sh1);
 			}
 		}
 		g.setColor(c);
@@ -574,263 +813,365 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 
 	private void rotateTop(Graphics g) {
 		int[] ptx0 = { x, x + 2 * width / 6 };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x, x + 2 * width / 6 };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6, x + 3 * width / 6, x + 4 * width / 6,
-				x + 4 * width / 6, x + 5 * width / 6, x + 4 * width / 6, x + 4 * width / 6, x + width,
-				x + 4 * width / 6, x + 4 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height / 4, y + 2 * height / 4,
-				y + 3 * height / 4, y + height, y + height, y + height, y };
+		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6,
+				x + 3 * width / 6, x + 4 * width / 6, x + 4 * width / 6,
+				x + 5 * width / 6, x + 4 * width / 6, x + 4 * width / 6,
+				x + width, x + 4 * width / 6, x + 4 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
-				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height / 8, y + height / 8, y + height / 16, y + height / 8 + height / 16, y + height / 8,
-				y + height / 8 };
+		int[] pty3 = { y + height / 4, y + height / 4,
+				y + height / 4 - height / 16, y + height / 4 + height / 16,
+				y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height - height / 8, y + height - height / 8 };
+		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 24 };
+		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
+		int[] ptx5 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height / 8, y + height / 8, y + height / 16, y + height / 8 + height / 16, y + height / 8,
-				y + height / 8 };
+		int[] pty5 = { y + height / 4, y + height / 4,
+				y + height / 4 - height / 16, y + height / 4 + height / 16,
+				y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height - height / 8, y + height - height / 8 };
+		int[] ptx6 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12 + width / 24 };
+		int[] pty6 = { y + height - height / 4, y + height - height / 4 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
 	private void rotateTopFlip(Graphics g) {
 		int[] ptx0 = { x, x + 2 * width / 6 };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x, x + 2 * width / 6 };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6, x + 3 * width / 6, x + 4 * width / 6,
-				x + 4 * width / 6, x + 5 * width / 6, x + 4 * width / 6, x + 4 * width / 6, x + width,
-				x + 4 * width / 6, x + 4 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height / 4, y + 2 * height / 4,
-				y + 3 * height / 4, y + height, y + height, y + height, y };
+		int[] ptx2 = { x + width, x + 4 * width / 6, x + 4 * width / 6,
+				x + 3 * width / 6, x + 4 * width / 6, x + 4 * width / 6,
+				x + 5 * width / 6, x + 4 * width / 6, x + 4 * width / 6,
+				x + width, x + 4 * width / 6, x + 4 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
-				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height - height / 8, y + height - height / 8, y + height - height / 16,
-				y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 8 };
+		int[] pty3 = { y + height - height / 4, y + height - height / 4,
+				y + height - height / 4 + height / 16,
+				y + height - height / 4 - height / 16, y + height - height / 4,
+				y + height - height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height / 8, y + height / 8 };
+		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 24 };
+		int[] pty4 = { y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
+		int[] ptx5 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height - height / 8, y + height - height / 8, y + height - height / 16,
-				y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 8 };
+		int[] pty5 = { y + height - height / 4, y + height - height / 4,
+				y + height - height / 4 + height / 16,
+				y + height - height / 4 - height / 16, y + height - height / 4,
+				y + height - height / 4 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height / 8, y + height / 8 };
+		int[] ptx6 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12 + width / 24 };
+		int[] pty6 = { y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
 	private void rotateBottom(Graphics g) {
 		int[] ptx0 = { x + 4 * width / 6, x + width };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x + 4 * width / 6, x + width };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6, x + 2 * width / 6, x + 2 * width / 6,
-				x + 3 * width / 6, x + 2 * width / 6, x + 2 * width / 6, x, x + 2 * width / 6, x + 2 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height / 4, y + 2 * height / 4,
-				y + 3 * height / 4, y + height, y + height, y + height, y };
+		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6,
+				x + 2 * width / 6, x + 2 * width / 6, x + 3 * width / 6,
+				x + 2 * width / 6, x + 2 * width / 6, x, x + 2 * width / 6,
+				x + 2 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
-				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height - height / 8, y + height - height / 8, y + height - height / 16,
-				y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 8 };
+		int[] pty3 = { y + height - height / 4, y + height - height / 4,
+				y + height - height / 4 + height / 16,
+				y + height - height / 4 - height / 16, y + height - height / 4,
+				y + height - height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height / 8, y + height / 8 };
+		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 24 };
+		int[] pty4 = { y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
+		int[] ptx5 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height - height / 8, y + height - height / 8, y + height - height / 16,
-				y + height - height / 8 - height / 16, y + height - height / 8, y + height - height / 8 };
+		int[] pty5 = { y + height - height / 4, y + height - height / 4,
+				y + height - height / 4 + height / 16,
+				y + height - height / 4 - height / 16, y + height - height / 4,
+				y + height - height / 4 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height / 8, y + height / 8 };
+		int[] ptx6 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12 + width / 24 };
+		int[] pty6 = { y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
 	private void rotateBottomFlip(Graphics g) {
 		int[] ptx0 = { x + 4 * width / 6, x + width };
-		int[] pty0 = { y, y };
+		int[] pty0 = { y + height / 16, y + height / 16 };
 		g.drawPolygon(ptx0, pty0, 2);
 		int[] ptx1 = { x + 4 * width / 6, x + width };
-		int[] pty1 = { y + height, y + height };
+		int[] pty1 = { y + height - height / 16, y + height - height / 16 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6, x + 2 * width / 6, x + 2 * width / 6,
-				x + 3 * width / 6, x + 2 * width / 6, x + 2 * width / 6, x, x + 2 * width / 6, x + 2 * width / 6 };
-		int[] pty2 = { y, y, y + height / 4, y + 2 * height / 4, y + 3 * height / 4, y + height / 4, y + 2 * height / 4,
-				y + 3 * height / 4, y + height, y + height, y + height, y };
+		int[] ptx2 = { x, x + 2 * width / 6, x + 2 * width / 6, x + width / 6,
+				x + 2 * width / 6, x + 2 * width / 6, x + 3 * width / 6,
+				x + 2 * width / 6, x + 2 * width / 6, x, x + 2 * width / 6,
+				x + 2 * width / 6 };
+		int[] pty2 = { y + height / 16, y + height / 16, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4, y + height / 4,
+				y + 2 * height / 4, y + 3 * height / 4,
+				y + height - height / 16, y + height - height / 16,
+				y + height - height / 16, y + height / 16 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 12,
-				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+		int[] ptx3 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
+				x + 2 * width / 6 - width / 12, x + 2 * width / 6 - width / 12,
 				x + 2 * width / 6 - width / 24 };
-		int[] pty3 = { y + height / 8, y + height / 8, y + height / 16, y + height / 8 + height / 16, y + height / 8,
-				y + height / 8 };
+		int[] pty3 = { y + height / 4, y + height / 4,
+				y + height / 4 - height / 16, y + height / 4 + height / 16,
+				y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24, x + 2 * width / 6 - width / 24 };
-		int[] pty4 = { y + height - height / 8, y + height - height / 8 };
+		int[] ptx4 = { x + 2 * width / 6 - width / 12 - width / 24,
+				x + 2 * width / 6 - width / 24 };
+		int[] pty4 = { y + height - height / 4, y + height - height / 4 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
+		int[] ptx5 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12, x + 4 * width / 6 + width / 12,
 				x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty5 = { y + height / 8, y + height / 8, y + height / 16, y + height / 8 + height / 16, y + height / 8,
-				y + height / 8 };
+		int[] pty5 = { y + height / 4, y + height / 4,
+				y + height / 4 - height / 16, y + height / 4 + height / 16,
+				y + height / 4, y + height / 4 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + 4 * width / 6 + width / 24, x + 4 * width / 6 + width / 12 + width / 24 };
-		int[] pty6 = { y + height - height / 8, y + height - height / 8 };
+		int[] ptx6 = { x + 4 * width / 6 + width / 24,
+				x + 4 * width / 6 + width / 12 + width / 24 };
+		int[] pty6 = { y + height - height / 4, y + height - height / 4 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
 	private void rotateRight(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width / 4, x + 2 * width / 4,
-				x + 3 * width / 4, x + width, x + width, x + width, x };
-		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6, y + 3 * height / 6, y + 4 * height / 6,
-				y + 4 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6, y + height,
-				y + 4 * height / 6, y + 4 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16, x + width / 16 };
+		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6,
+				y + 3 * height / 6, y + 4 * height / 6, y + 4 * height / 6,
+				y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6,
+				y + height, y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width - width / 8, x + width - width / 8, x + width - width / 16,
-				x + width - width / 8 - width / 16, x + width - width / 8, x + width - width / 8 };
-		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
-				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
+		int[] ptx3 = { x + width - width / 4, x + width - width / 4,
+				x + width - width / 4 + width / 16,
+				x + width - width / 4 - width / 16, x + width - width / 4,
+				x + width - width / 4 };
+		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 8, x + width / 8 };
-		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
+		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width - width / 8, x + width - width / 8, x + width - width / 16,
-				x + width - width / 8 - width / 16, x + width - width / 8, x + width - width / 8 };
-		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
-				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
+		int[] ptx5 = { x + width - width / 4, x + width - width / 4,
+				x + width - width / 4 + width / 16,
+				x + width - width / 4 - width / 16, x + width - width / 4,
+				x + width - width / 4 };
+		int[] pty5 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + width / 8, x + width / 8 };
-		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
+		int[] ptx6 = { x + width / 4, x + width / 4 };
+		int[] pty6 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
 	private void rotateRightFlip(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width / 4, x + 2 * width / 4,
-				x + 3 * width / 4, x + width, x + width, x + width, x };
-		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6, y + height / 6, y + 2 * height / 6,
-				y + 2 * height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y, y + 2 * height / 6,
-				y + 2 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16, x + width / 16 };
+		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6,
+				y + height / 6, y + 2 * height / 6, y + 2 * height / 6,
+				y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y,
+				y + 2 * height / 6, y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width - width / 8, x + width - width / 8, x + width - width / 16,
-				x + width - width / 8 - width / 16, x + width - width / 8, x + width - width / 8 };
-		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
-				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
+		int[] ptx3 = { x + width - width / 4, x + width - width / 4,
+				x + width - width / 4 + width / 16,
+				x + width - width / 4 - width / 16, x + width - width / 4,
+				x + width - width / 4 };
+		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width / 8, x + width / 8 };
-		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
+		int[] ptx4 = { x + width / 4, x + width / 4 };
+		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width - width / 8, x + width - width / 8, x + width - width / 16,
-				x + width - width / 8 - width / 16, x + width - width / 8, x + width - width / 8 };
-		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
-				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
+		int[] ptx5 = { x + width - width / 4, x + width - width / 4,
+				x + width - width / 4 + width / 16,
+				x + width - width / 4 - width / 16, x + width - width / 4,
+				x + width - width / 4 };
+		int[] pty5 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + width / 8, x + width / 8 };
-		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
+		int[] ptx6 = { x + width / 4, x + width / 4 };
+		int[] pty6 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
 	private void rotateLeft(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y + 4 * height / 6, y + height };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width / 4, x + 2 * width / 4,
-				x + 3 * width / 4, x + width, x + width, x + width, x };
-		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6, y + height / 6, y + 2 * height / 6,
-				y + 2 * height / 6, y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y, y + 2 * height / 6,
-				y + 2 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16, x + width / 16 };
+		int[] pty2 = { y, y + 2 * height / 6, y + 2 * height / 6,
+				y + height / 6, y + 2 * height / 6, y + 2 * height / 6,
+				y + 3 * height / 6, y + 2 * height / 6, y + 2 * height / 6, y,
+				y + 2 * height / 6, y + 2 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width / 8, x + width / 8, x + width / 16, x + width / 8 + width / 16, x + width / 8,
-				x + width / 8 };
-		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
-				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
+		int[] ptx3 = { x + width / 4, x + width / 4,
+				x + width / 4 - width / 16, x + width / 4 + width / 16,
+				x + width / 4, x + width / 4 };
+		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 8, x + width - width / 8 };
-		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
+		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 8, x + width / 8, x + width / 16, x + width / 8 + width / 16, x + width / 8,
-				x + width / 8 };
-		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
-				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
+		int[] ptx5 = { x + width / 4, x + width / 4,
+				x + width / 4 - width / 16, x + width / 4 + width / 16,
+				x + width / 4, x + width / 4 };
+		int[] pty5 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + width - width / 8, x + width - width / 8 };
-		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
+		int[] ptx6 = { x + width - width / 4, x + width - width / 4 };
+		int[] pty6 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
 	private void rotateLeftFlip(Graphics g) {
-		int[] ptx0 = { x, x };
+		int[] ptx0 = { x + width / 16, x + width / 16 };
 		int[] pty0 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx0, pty0, 2);
-		int[] ptx1 = { x + width, x + width };
+		int[] ptx1 = { x + width - width / 16, x + width - width / 16 };
 		int[] pty1 = { y, y + 2 * height / 6 };
 		g.drawPolygon(ptx1, pty1, 2);
-		int[] ptx2 = { x, x, x + width / 4, x + 2 * width / 4, x + 3 * width / 4, x + width / 4, x + 2 * width / 4,
-				x + 3 * width / 4, x + width, x + width, x + width, x };
-		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6, y + 3 * height / 6, y + 4 * height / 6,
-				y + 4 * height / 6, y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6, y + height,
-				y + 4 * height / 6, y + 4 * height / 6 };
+		int[] ptx2 = { x + width / 16, x + width / 16, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width / 4,
+				x + 2 * width / 4, x + 3 * width / 4, x + width - width / 16,
+				x + width - width / 16, x + width - width / 16, x + width / 16 };
+		int[] pty2 = { y + height, y + 4 * height / 6, y + 4 * height / 6,
+				y + 3 * height / 6, y + 4 * height / 6, y + 4 * height / 6,
+				y + 5 * height / 6, y + 4 * height / 6, y + 4 * height / 6,
+				y + height, y + 4 * height / 6, y + 4 * height / 6 };
 		g.drawPolygon(ptx2, pty2, 12);
-		int[] ptx3 = { x + width / 8, x + width / 8, x + width / 16, x + width / 8 + width / 16, x + width / 8,
-				x + width / 8 };
-		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 12,
-				y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12, y + 2 * height / 6 - height / 12,
+		int[] ptx3 = { x + width / 4, x + width / 4,
+				x + width / 4 - width / 16, x + width / 4 + width / 16,
+				x + width / 4, x + width / 4 };
+		int[] pty3 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
+				y + 2 * height / 6 - height / 12,
 				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx3, pty3, 6);
-		int[] ptx4 = { x + width - width / 8, x + width - width / 8 };
-		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24, y + 2 * height / 6 - height / 24 };
+		int[] ptx4 = { x + width - width / 4, x + width - width / 4 };
+		int[] pty4 = { y + 2 * height / 6 - height / 12 - height / 24,
+				y + 2 * height / 6 - height / 24 };
 		g.drawPolygon(ptx4, pty4, 2);
-		int[] ptx5 = { x + width / 8, x + width / 8, x + width / 16, x + width / 8 + width / 16, x + width / 8,
-				x + width / 8 };
-		int[] pty5 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12,
-				y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12, y + 4 * height / 6 + height / 12,
+		int[] ptx5 = { x + width / 4, x + width / 4,
+				x + width / 4 - width / 16, x + width / 4 + width / 16,
+				x + width / 4, x + width / 4 };
+		int[] pty5 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
+				y + 4 * height / 6 + height / 12,
 				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx5, pty5, 6);
-		int[] ptx6 = { x + width - width / 8, x + width - width / 8 };
-		int[] pty6 = { y + 4 * height / 6 + height / 24, y + 4 * height / 6 + height / 12 + height / 24 };
+		int[] ptx6 = { x + width - width / 4, x + width - width / 4 };
+		int[] pty6 = { y + 4 * height / 6 + height / 24,
+				y + 4 * height / 6 + height / 12 + height / 24 };
 		g.drawPolygon(ptx6, pty6, 2);
 	}
 
@@ -868,7 +1209,8 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		return new String(sb);
 	}
 
-	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId)
+			throws MalformedModelingException {
 		try {
 			NodeList nli;
 			Node n1, n2;
@@ -887,15 +1229,24 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 						if (n2.getNodeType() == Node.ELEMENT_NODE) {
 							elt = (Element) n2;
 							if (elt.getTagName().equals("attributes")) {
-								value = Double.parseDouble(elt.getAttribute("value"));
-								position = Integer.parseInt(elt.getAttribute("position"));
-								width = Integer.parseInt(elt.getAttribute("width"));
-								height = Integer.parseInt(elt.getAttribute("height"));
-								fv_0_2 = Boolean.parseBoolean(elt.getAttribute("fv_0_2"));
-								fv_1_3 = Boolean.parseBoolean(elt.getAttribute("fv_1_3"));
-								fh_0_2 = Boolean.parseBoolean(elt.getAttribute("fh_0_2"));
-								fh_1_3 = Boolean.parseBoolean(elt.getAttribute("fh_1_3"));
-								first = Boolean.parseBoolean(elt.getAttribute("first"));
+								value = Double.parseDouble(elt
+										.getAttribute("value"));
+								position = Integer.parseInt(elt
+										.getAttribute("position"));
+								width = Integer.parseInt(elt
+										.getAttribute("width"));
+								height = Integer.parseInt(elt
+										.getAttribute("height"));
+								fv_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fv_0_2"));
+								fv_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fv_1_3"));
+								fh_0_2 = Boolean.parseBoolean(elt
+										.getAttribute("fh_0_2"));
+								fh_1_3 = Boolean.parseBoolean(elt
+										.getAttribute("fh_1_3"));
+								first = Boolean.parseBoolean(elt
+										.getAttribute("first"));
 								setVal(value);
 								setPosition(position);
 								this.width = width;
@@ -915,14 +1266,15 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		}
 	}
 
-	public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
+	public void addActionToPopupMenu(JPopupMenu componentMenu,
+			ActionListener menuAL, int x, int y) {
 		componentMenu.addSeparator();
 
-		JMenuItem rotateright = new JMenuItem("Rotate right 90°");
+		JMenuItem rotateright = new JMenuItem("Rotate right 90\u00b0");
 		rotateright.addActionListener(this);
 		componentMenu.add(rotateright);
 
-		JMenuItem rotateleft = new JMenuItem("Rotate left 90°");
+		JMenuItem rotateleft = new JMenuItem("Rotate left 90\u00b0");
 		rotateleft.addActionListener(this);
 		componentMenu.add(rotateleft);
 
@@ -938,12 +1290,12 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 	}
 
 	public void actionPerformed(ActionEvent e) {
-		if (e.getActionCommand().equals("Rotate right 90°")) {
+		if (e.getActionCommand().equals("Rotate right 90\u00b0")) {
 			position++;
 			position %= 4;
 			first = false;
 		}
-		if (e.getActionCommand().equals("Rotate left 90°")) {
+		if (e.getActionCommand().equals("Rotate left 90\u00b0")) {
 			position = position + 3;
 			position %= 4;
 			first = false;
@@ -998,47 +1350,75 @@ public class ELNComponentVoltageControlledVoltageSource extends TGCScalableWithI
 		return position;
 	}
 
-	public void setPosition(int position) {
-		this.position = position;
+	public void setPosition(int _position) {
+		position = _position;
 	}
 
 	public boolean isFv_0_2() {
 		return fv_0_2;
 	}
 
-	public void setFv_0_2(boolean fv_0_2) {
-		this.fv_0_2 = fv_0_2;
+	public void setFv_0_2(boolean _fv_0_2) {
+		fv_0_2 = _fv_0_2;
 	}
 
 	public boolean isFv_1_3() {
 		return fv_1_3;
 	}
 
-	public void setFv_1_3(boolean fv_1_3) {
-		this.fv_1_3 = fv_1_3;
+	public void setFv_1_3(boolean _fv_1_3) {
+		fv_1_3 = _fv_1_3;
 	}
 
 	public boolean isFh_0_2() {
 		return fh_0_2;
 	}
 
-	public void setFh_0_2(boolean fh_0_2) {
-		this.fh_0_2 = fh_0_2;
+	public void setFh_0_2(boolean _fh_0_2) {
+		fh_0_2 = _fh_0_2;
 	}
 
 	public boolean isFh_1_3() {
 		return fh_1_3;
 	}
 
-	public void setFh_1_3(boolean fh_1_3) {
-		this.fh_1_3 = fh_1_3;
+	public void setFh_1_3(boolean _fh_1_3) {
+		fh_1_3 = _fh_1_3;
 	}
 
 	public boolean isFirst() {
 		return first;
 	}
 
-	public void setFirst(boolean first) {
-		this.first = first;
+	public void setFirst(boolean _first) {
+		first = _first;
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		return tgc instanceof ELNPortTerminal;
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		if (tgc instanceof ELNPortTerminal) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for (int i = 0; i < nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof ELNPortTerminal) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
 	}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java
index 7df9b59d53a37242734e08e74838cc4418fd8ec8..31dc1ef2aefe2fcb2c6e842805cfa86fba8dc637 100644
--- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java
+++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentCurrentSinkTDF.java
@@ -92,8 +92,6 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(2);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -109,12 +107,12 @@ public class ELNComponentCurrentSinkTDF extends TGCScalableWithInternalComponent
 		height = old;
 	}
 
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "n");
-	}
+//	public void initConnectingPoint(int nb) {
+//		nbConnectingPoint = nb;
+//		connectingPoint = new TGConnectingPoint[nb];
+//		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
+//		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "n");
+//	}
 
 	public Color getMyColor() {
 		return myColor;
diff --git a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java
index e513c56c7b35f2c5d200d6397da6b8a3edbb3b50..0e6f725396fbeab98d8909199edbe5ea948acb16 100644
--- a/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java
+++ b/src/main/java/ui/eln/sca_eln_sca_tdf/ELNComponentVoltageSinkTDF.java
@@ -91,8 +91,6 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		minWidth = 1;
 		minHeight = 1;
 
-		initConnectingPoint(2);
-
 		addTGConnectingPointsComment();
 
 		moveable = true;
@@ -108,12 +106,12 @@ public class ELNComponentVoltageSinkTDF extends TGCScalableWithInternalComponent
 		height = old;
 	}
 
-	public void initConnectingPoint(int nb) {
-		nbConnectingPoint = nb;
-		connectingPoint = new TGConnectingPoint[nb];
-		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
-		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "n");
-	}
+//	public void initConnectingPoint(int nb) {
+//		nbConnectingPoint = nb;
+//		connectingPoint = new TGConnectingPoint[nb];
+//		connectingPoint[0] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 0.0, "p");
+//		connectingPoint[1] = new ELNConnectingPoint(this, 0, 0, true, true, 0.0, 1.0, "n");
+//	}
 
 	public Color getMyColor() {
 		return myColor;
diff --git a/src/main/java/ui/req/Requirement.java b/src/main/java/ui/req/Requirement.java
index e606802bfdead30be9555e772b56da1b34edd61a..391b0b590db0537006fd4edad463ad9c15366318 100755
--- a/src/main/java/ui/req/Requirement.java
+++ b/src/main/java/ui/req/Requirement.java
@@ -1,27 +1,27 @@
 
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
+ *
  * ludovic.apvrille AT enst.fr
- * 
+ *
  * This software is a computer program whose purpose is to allow the
  * edition of TURTLE analysis, design and deployment diagrams, to
  * allow the generation of RT-LOTOS or Java code from this diagram,
  * and at last to allow the analysis of formal validation traces
  * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
  * from INRIA Rhone-Alpes.
- * 
+ *
  * This software is governed by the CeCILL  license under French law and
  * abiding by the rules of distribution of free software.  You can  use,
  * modify and/ or redistribute the software under the terms of the CeCILL
  * license as circulated by CEA, CNRS and INRIA at the following URL
  * "http://www.cecill.info".
- * 
+ *
  * As a counterpart to the access to the source code and  rights to copy,
  * modify and redistribute granted by the license, users are provided only
  * with a limited warranty  and the software's author,  the holder of the
  * economic rights,  and the successive licensors  have only  limited
  * liability.
- * 
+ *
  * In this respect, the user's attention is drawn to the risks associated
  * with loading,  using,  modifying and/or developing or reproducing the
  * software by the user in light of its specific status of free software,
@@ -32,14 +32,12 @@
  * requirements in conditions enabling the security of their systems and/or
  * data to be ensured and,  more generally, to use and operate it in the
  * same conditions as regards security.
- * 
+ *
  * The fact that you are presently reading this means that you have had
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
 
-
-
 package ui.req;
 
 
@@ -58,74 +56,75 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 /**
-* Class Requirement
-* Turtle requirement: to be used in requirement diagram
-* Creation: 30/05/2006
-* @version 1.0 30/05/2006
-* @author Ludovic APVRILLE
+ * Class Requirement
+ * Turtle requirement: to be used in requirement diagram
+ * Creation: 30/05/2006
+ *
+ * @author Ludovic APVRILLE
+ * @version 1.0 30/05/2006
  */
 public class Requirement extends TGCScalableWithInternalComponent implements WithAttributes, TGAutoAdjust {
     public String oldValue;
     protected int textX = 5;
     protected int textY = 22;
-	protected int lineHeight = 30;
-	private double dlineHeight = 0.0;
+    protected int lineHeight = 30;
+    private double dlineHeight = 0.0;
     protected int reqType = 0;
-	// 0: normal, 1: formal, 2: security
+    // 0: normal, 1: formal, 2: security
     //protected int startFontSize = 10;
     protected Graphics graphics;
     //protected int iconSize = 30;
-	
-	private Font myFont, myFontB;
-//	private int maxFontSize = 30;
-	private int minFontSize = 4;
-	private int currentFontSize = -1;
-	private boolean displayText = true;
-    
+
+    private Font myFont, myFontB;
+    //	private int maxFontSize = 30;
+    private int minFontSize = 4;
+    private int currentFontSize = -1;
+    private boolean displayText = true;
+
     protected final static String REGULAR_REQ = "<<Requirement>>";
     protected final static String FORMAL_REQ = "<<Formal Requirement>>";
-	protected final static String SECURITY_REQ = "<<Security Requirement>>";
-    
+    protected final static String SECURITY_REQ = "<<Security Requirement>>";
+
     public final static int HIGH = 0;
     public final static int MEDIUM = 1;
     public final static int LOW = 2;
-	
-	protected String text;
-    protected String []texts;
+
+    protected String text;
+    protected String[] texts;
     protected String kind = "";
     protected String criticality = "";
     protected String violatedAction = "";
-	protected String attackTreeNode = "";
-	protected String id = "";
-	
-	protected boolean satisfied = false;
-	protected boolean verified = false;
-	
-	private JMenuItem isRegular = null;
+    protected String attackTreeNode = "";
+    protected String id = "";
+
+    protected boolean satisfied = false;
+    protected boolean verified = false;
+
+    private JMenuItem isRegular = null;
     private JMenuItem isFormal = null;
-	private JMenuItem isSecurity = null;
-	private JMenuItem menuNonSatisfied = null;
-	private JMenuItem menuSatisfied = null;
-	private JMenuItem menuNonVerified = null;
-	private JMenuItem menuVerified = null;
-	JMenuItem editAttributes = null;
-	
-	
-	// Icon
-	private int iconSize = 18;
+    private JMenuItem isSecurity = null;
+    private JMenuItem menuNonSatisfied = null;
+    private JMenuItem menuSatisfied = null;
+    private JMenuItem menuNonVerified = null;
+    private JMenuItem menuVerified = null;
+    JMenuItem editAttributes = null;
+
+
+    // Icon
+    private int iconSize = 18;
 //	private boolean iconIsDrawn = false;
-    
-    public Requirement(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+
+    public Requirement(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-		initScaling(200, 120);
-		oldScaleFactor = tdp.getZoom();
-		dlineHeight = lineHeight * oldScaleFactor;
-		lineHeight = (int)dlineHeight;
-		dlineHeight = dlineHeight - lineHeight;
-		
-		minWidth = 1;
+        initScaling(200, 120);
+        oldScaleFactor = tdp.getZoom();
+        dlineHeight = lineHeight * oldScaleFactor;
+        lineHeight = (int) dlineHeight;
+        dlineHeight = dlineHeight - lineHeight;
+
+        minWidth = 1;
         minHeight = lineHeight;
-        
+
         nbConnectingPoint = 28;
         connectingPoint = new TGConnectingPoint[nbConnectingPoint];
         connectingPoint[0] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.0, 0.25, TGConnectingPoint.WEST);
@@ -138,8 +137,8 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
         connectingPoint[7] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 0.0, TGConnectingPoint.NORTH);
         connectingPoint[8] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.75, 0.0, TGConnectingPoint.NORTH);
         connectingPoint[9] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.25, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[10] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[11] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.75, 1.0, TGConnectingPoint.SOUTH);
+        connectingPoint[10] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
+        connectingPoint[11] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.75, 1.0, TGConnectingPoint.SOUTH);
         connectingPoint[12] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.0, 0.25, TGConnectingPoint.WEST);
         connectingPoint[13] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.0, 0.5, TGConnectingPoint.WEST);
         connectingPoint[14] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.0, 0.75, TGConnectingPoint.WEST);
@@ -150,281 +149,282 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
         connectingPoint[19] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.5, 0.0, TGConnectingPoint.NORTH);
         connectingPoint[20] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.75, 0.0, TGConnectingPoint.NORTH);
         connectingPoint[21] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.25, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[22] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.5, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[23] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.75, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[24] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[25] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[26] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
-		connectingPoint[27] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
-		
-		
-        addTGConnectingPointsCommentTop();    
-        
+        connectingPoint[22] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.5, 1.0, TGConnectingPoint.SOUTH);
+        connectingPoint[23] = new TGConnectingPointVerify(this, 0, 0, true, false, 0.75, 1.0, TGConnectingPoint.SOUTH);
+        connectingPoint[24] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
+        connectingPoint[25] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
+        connectingPoint[26] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
+        connectingPoint[27] = new TGConnectingPointDerive(this, 0, 0, true, true, 0.5, 1.0, TGConnectingPoint.SOUTH);
+
+
+        addTGConnectingPointsCommentTop();
+
         nbInternalTGComponent = 0;
         //tgcomponent = new TGComponent[nbInternalTGComponent];
-        
-    //    int h = 1;
+
+        //    int h = 1;
         //TAttributeRequirement tgc0;
         //tgc0 = new TAttributeRequirement(x, y+height+h, 0, 0, height + h, height+h, true, this, _tdp);
         //tgcomponent[0] = tgc0;
-        
+
         moveable = true;
         editable = true;
         removable = true;
         userResizable = true;
-		multieditable = true;
-		
+        multieditable = true;
+
         reqType = 0;
-		
-		id = "0";
-        
+
+        id = "0";
+
         // Name of the requirement
         name = "Requirement";
         value = tdp.findRequirementName("Requirement_");
         oldValue = value;
-        
+
         myImageIcon = IconManager.imgic1002;
-		
-		text = "Requirement description:\nDouble-click to edit";
-        
+
+        text = "Requirement description:\nDouble-click to edit";
+
         actionOnAdd();
     }
-	
-	public void makeValue() {
+
+    public void makeValue() {
         texts = Conversion.wrapText(text);
     }
-    
+
     public void internalDrawing(Graphics g) {
-		Font f = g.getFont();
-	//	Font fold = f;
-	//	int w, c;
-		int size;
-		
-		if (texts == null) {
-			makeValue();
-		}
-		
+        Font f = g.getFont();
+        //	Font fold = f;
+        //	int w, c;
+        int size;
+
+        if (texts == null) {
+            makeValue();
+        }
+
         if (!tdp.isScaled()) {
             graphics = g;
         }
-		
-		if (((rescaled) && (!tdp.isScaled())) || myFont == null) {
-			currentFontSize = tdp.getFontSize();
-			//
-			myFont = f.deriveFont((float)currentFontSize);
-			myFontB = myFont.deriveFont(Font.BOLD);
-			
-			if (rescaled) {
-				rescaled = false;
-			}
-		}
+
+        if (((rescaled) && (!tdp.isScaled())) || myFont == null) {
+            currentFontSize = tdp.getFontSize();
+            //
+            myFont = f.deriveFont((float) currentFontSize);
+            myFontB = myFont.deriveFont(Font.BOLD);
+
+            if (rescaled) {
+                rescaled = false;
+            }
+        }
 
         displayText = currentFontSize >= minFontSize;
-		
-	//	int h  = g.getFontMetrics().getHeight();
-        
-		g.drawRect(x, y, width, height);
-        
-		g.drawLine(x, y+lineHeight, x+width, y+lineHeight);
-		g.setColor(ColorManager.REQ_TOP_BOX);
-        g.fillRect(x+1, y+1, width-1, lineHeight-1);
-		g.setColor(ColorManager.REQ_ATTRIBUTE_BOX);
-		g.fillRect(x+1, y+1+lineHeight, width-1, height-1-lineHeight);
-		ColorManager.setColor(g, getState(), 0);
-		if ((lineHeight > 23) && (width > 23)){
-			if (ColorManager.REQ_TOP_BOX != Color.white) {
-				g.drawImage(IconManager.img8, x + width - iconSize + 1, y + 3, Color.yellow, null);
-			}
-		}
-		
-		if (displayText) {
-			size = currentFontSize - 2;
-			g.setFont(myFont.deriveFont((float)(myFont.getSize() - 2)));
-			if (reqType == 1) {
-				drawLimitedString(g, FORMAL_REQ, x, y + size, width, 1);
-			} else {
-				if (reqType == 0) {
-					drawLimitedString(g, REGULAR_REQ, x, y + size, width, 1);
-				} else {
-					drawLimitedString(g, SECURITY_REQ, x, y + size, width, 1);
-				}
-			}			
-			size += currentFontSize;
-			g.setFont(myFontB);
-	//		w = g.getFontMetrics().stringWidth(value);
-			drawLimitedString(g, value, x, y + size, width, 1);
-			
-		}
-		
-		if (verified) {
-			if (satisfied) {
-				Color tmp = g.getColor();
-				GraphicLib.setMediumStroke(g);
-				g.setColor(Color.green);
-				g.drawLine(x+width-2, y-6+lineHeight, x+width-6, y-2+lineHeight);
-				g.drawLine(x+width-6, y-3+lineHeight, x+width-8, y-6+lineHeight);
-				g.setColor(tmp);
-				GraphicLib.setNormalStroke(g);
-			} else {
-				//g.drawString("acc", x + width - 10, y+height-10);
-				Color tmp = g.getColor();
-				GraphicLib.setMediumStroke(g);
-				g.setColor(Color.red);
-				g.drawLine(x+width-2, y-2+lineHeight, x+width-8, y-8+lineHeight);
-				g.drawLine(x+width-8, y-2+lineHeight, x+width-2, y-8+lineHeight);
-				g.setColor(tmp);
-				GraphicLib.setNormalStroke(g);
-			}
-		}
-		
-		g.setFont(myFont);
-		String texti;
-		if (reqType == 1) {
-			texti = "TRDD";
-		} else {
-			texti = "Text";
-		}
-		
-		String s ;
-		int i;
-		size = lineHeight + currentFontSize;
-		
-		//ID
-		if (size < (height - 2)) {
-			drawLimitedString(g, "ID=" + id, x + textX, y + size, width, 0);
-		}
-		size += currentFontSize;
-		
-		//text
-        for(i=0; i<texts.length; i++) {
-			if (size < (height - 2)) {
-				s = texts[i];
-				if (i == 0) {
-					s = texti + "=\"" + s;
-				}
-				if (i == (texts.length - 1)) {
-					s = s + "\"";
-				}
-				drawLimitedString(g, s, x + textX, y + size, width, 0);
-			}
-			size += currentFontSize;
-            
+
+        //	int h  = g.getFontMetrics().getHeight();
+
+        g.drawRect(x, y, width, height);
+
+        g.drawLine(x, y + lineHeight, x + width, y + lineHeight);
+        g.setColor(ColorManager.REQ_TOP_BOX);
+        g.fillRect(x + 1, y + 1, width - 1, lineHeight - 1);
+        g.setColor(ColorManager.REQ_ATTRIBUTE_BOX);
+        g.fillRect(x + 1, y + 1 + lineHeight, width - 1, height - 1 - lineHeight);
+        ColorManager.setColor(g, getState(), 0);
+        if ((lineHeight > 23) && (width > 23)) {
+            if (ColorManager.REQ_TOP_BOX != Color.white) {
+                g.drawImage(IconManager.img8, x + width - iconSize + 1, y + 3, Color.yellow, null);
+            }
+        }
+
+        if (displayText) {
+            size = currentFontSize - 2;
+            g.setFont(myFont.deriveFont((float) (myFont.getSize() - 2)));
+            if (reqType == 1) {
+                drawLimitedString(g, FORMAL_REQ, x, y + size, width, 1);
+            } else {
+                if (reqType == 0) {
+                    drawLimitedString(g, REGULAR_REQ, x, y + size, width, 1);
+                } else {
+                    drawLimitedString(g, SECURITY_REQ, x, y + size, width, 1);
+                }
+            }
+            size += currentFontSize;
+            g.setFont(myFontB);
+            //		w = g.getFontMetrics().stringWidth(value);
+            drawLimitedString(g, value, x, y + size, width, 1);
+
+        }
+
+        if (verified) {
+            if (satisfied) {
+                Color tmp = g.getColor();
+                GraphicLib.setMediumStroke(g);
+                g.setColor(Color.green);
+                g.drawLine(x + width - 2, y - 6 + lineHeight, x + width - 6, y - 2 + lineHeight);
+                g.drawLine(x + width - 6, y - 3 + lineHeight, x + width - 8, y - 6 + lineHeight);
+                g.setColor(tmp);
+                GraphicLib.setNormalStroke(g);
+            } else {
+                //g.drawString("acc", x + width - 10, y+height-10);
+                Color tmp = g.getColor();
+                GraphicLib.setMediumStroke(g);
+                g.setColor(Color.red);
+                g.drawLine(x + width - 2, y - 2 + lineHeight, x + width - 8, y - 8 + lineHeight);
+                g.drawLine(x + width - 8, y - 2 + lineHeight, x + width - 2, y - 8 + lineHeight);
+                g.setColor(tmp);
+                GraphicLib.setNormalStroke(g);
+            }
+        }
+
+        g.setFont(myFont);
+        String texti;
+        if (reqType == 1) {
+            texti = "TRDD";
+        } else {
+            texti = "Text";
+        }
+
+        String s;
+        int i;
+        size = lineHeight + currentFontSize;
+
+        //ID
+        if (size < (height - 2)) {
+            drawLimitedString(g, "ID=" + id, x + textX, y + size, width, 0);
+        }
+        size += currentFontSize;
+
+        //text
+        for (i = 0; i < texts.length; i++) {
+            if (size < (height - 2)) {
+                s = texts[i];
+                if (i == 0) {
+                    s = texti + "=\"" + s;
+                }
+                if (i == (texts.length - 1)) {
+                    s = s + "\"";
+                }
+                drawLimitedString(g, s, x + textX, y + size, width, 0);
+            }
+            size += currentFontSize;
+
         }
         // Type and risk
-		if (size < (height - 2)) {
-			drawLimitedString(g, "Kind=\"" + kind + "\"", x + textX, y + size, width, 0);
-			size += currentFontSize;
-			if (size < (height - 2)) {
-				drawLimitedString(g, "Risk=\"" + criticality + "\"", x + textX, y + size, width, 0);
-				size += currentFontSize;
-				if ((size < (height - 2)) && (reqType == 2)) {
-					drawLimitedString(g, "Targeted attacks=\"" + attackTreeNode + "\"", x + textX, y + size, width, 0);
-				}
-			}
-		}
-		
-        
+        if (size < (height - 2)) {
+            drawLimitedString(g, "Kind=\"" + kind + "\"", x + textX, y + size, width, 0);
+            size += currentFontSize;
+            if (size < (height - 2)) {
+                drawLimitedString(g, "Risk=\"" + criticality + "\"", x + textX, y + size, width, 0);
+                size += currentFontSize;
+                if ((size < (height - 2)) && (reqType == 2)) {
+                    drawLimitedString(g, "Targeted attacks=\"" + attackTreeNode + "\"", x + textX, y + size, width, 0);
+                }
+            }
+        }
+
+
         g.setFont(f);
     }
-    
-	public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
-		// On the name ?
+
+    public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
+        // On the name ?
         oldValue = value;
-		
+
         if ((displayText) && (_y <= (y + lineHeight))) {
-			String text = getName() + ": ";
-			if (hasFather()) {
-				text = getTopLevelName() + " / " + text;
-			}
-			String s = (String)JOptionPane.showInputDialog(frame, text,
-				"setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101,
-				null,
-				getValue());
-			
-			if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
-				//boolean b;
-				if (!TAttribute.isAValidId(s, false, false)) {
-					JOptionPane.showMessageDialog(frame,
-						"Could not change the name of the Requirement: the new name is not a valid name",
-						"Error",
-						JOptionPane.INFORMATION_MESSAGE);
-					return false;
-				}
-				
-				if (!tdp.isRequirementNameUnique(s)) {
-					JOptionPane.showMessageDialog(frame,
-						"Could not change the name of the Requirement: the new name is already in use",
-						"Error",
-						JOptionPane.INFORMATION_MESSAGE);
-					return false;
-				}
-				
-				
-				int size = graphics.getFontMetrics().stringWidth(s) + iconSize + 5;
-				minDesiredWidth = Math.max(size, minWidth);
-				if (minDesiredWidth != width) {
-					newSizeForSon(null);
-				}
-				setValue(s);
-				
-				if (tdp.actionOnDoubleClick(this)) {
-					return true;
-				} else {
-					JOptionPane.showMessageDialog(frame,
-						"Could not change the name of the Requirement: this name is already in use",
-						"Error",
-						JOptionPane.INFORMATION_MESSAGE);
-					setValue(oldValue);
-				}
-			}
-			return false;
-		}
-		
-		return editAttributes();
-		
+            String text = getName() + ": ";
+            if (hasFather()) {
+                text = getTopLevelName() + " / " + text;
+            }
+            String s = (String) JOptionPane.showInputDialog(frame, text,
+                    "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101,
+                    null,
+                    getValue());
+
+            if ((s != null) && (s.length() > 0) && (!s.equals(oldValue))) {
+                //boolean b;
+                if (!TAttribute.isAValidId(s, false, false)) {
+                    JOptionPane.showMessageDialog(frame,
+                            "Could not change the name of the Requirement: the new name is not a valid name",
+                            "Error",
+                            JOptionPane.INFORMATION_MESSAGE);
+                    return false;
+                }
+
+                if (!tdp.isRequirementNameUnique(s)) {
+                    JOptionPane.showMessageDialog(frame,
+                            "Could not change the name of the Requirement: the new name is already in use",
+                            "Error",
+                            JOptionPane.INFORMATION_MESSAGE);
+                    return false;
+                }
+
+
+                int size = graphics.getFontMetrics().stringWidth(s) + iconSize + 5;
+                minDesiredWidth = Math.max(size, minWidth);
+                if (minDesiredWidth != width) {
+                    newSizeForSon(null);
+                }
+                setValue(s);
+
+                if (tdp.actionOnDoubleClick(this)) {
+                    return true;
+                } else {
+                    JOptionPane.showMessageDialog(frame,
+                            "Could not change the name of the Requirement: this name is already in use",
+                            "Error",
+                            JOptionPane.INFORMATION_MESSAGE);
+                    setValue(oldValue);
+                }
+            }
+            return false;
+        }
+
+        return editAttributes();
+
     }
-	
-	public boolean editAttributes() {
-		//String oldValue = value;
-        JDialogRequirement jdr = new JDialogRequirement(tdp.getGUI().getFrame(), "Setting attributes of Requirement " + getRequirementName(), id, text, kind, criticality, violatedAction, reqType, attackTreeNode, null);
-       // jdr.setSize(750, 400);
+
+    public boolean editAttributes() {
+        //String oldValue = value;
+        JDialogRequirement jdr = new JDialogRequirement(tdp.getGUI().getFrame(), "Setting attributes of Requirement " + getRequirementName(), id,
+                text, kind, criticality, violatedAction, reqType, attackTreeNode, null, null, null);
+        // jdr.setSize(750, 400);
         GraphicLib.centerOnParent(jdr, 750, 400);
-        jdr.setVisible( true );
-        
+        jdr.setVisible(true);
+
         if (!jdr.isRegularClose()) {
             return false;
         }
-        
-		id = jdr.getId();
+
+        id = jdr.getId();
         text = jdr.getText();
         kind = jdr.getKind();
         criticality = jdr.getCriticality();
         violatedAction = jdr.getViolatedAction();
-		attackTreeNode = jdr.getAttackTreeNode();
-        
+        attackTreeNode = jdr.getAttackTreeNode();
+
         makeValue();
-        
+
         return true;
-	}
-	
-	public void rescale(double scaleFactor){
-		dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
-		lineHeight = (int)(dlineHeight);
-		dlineHeight = dlineHeight - lineHeight; 
-		
-		minHeight = lineHeight;
-		
-		super.rescale(scaleFactor);
-	}
-    
-    
+    }
+
+    public void rescale(double scaleFactor) {
+        dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
+        lineHeight = (int) (dlineHeight);
+        dlineHeight = dlineHeight - lineHeight;
+
+        minHeight = lineHeight;
+
+        super.rescale(scaleFactor);
+    }
+
+
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
         }
         return null;
     }
-    
+
     public String getRequirementName() {
         return value;
     }
@@ -432,133 +432,133 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
     public boolean isFormal() {
         return (reqType == 1);
     }
-    
+
     public void setRequirementType(int _type) {
         reqType = _type;
     }
-    
+
     public int getRequirementType() {
-	    return reqType;
+        return reqType;
     }
-    
+
     public boolean isSatisfied() {
-	    return satisfied;
+        return satisfied;
+    }
+
+    public boolean isVerified() {
+        return verified;
     }
-	
-	public boolean isVerified() {
-		return verified;
-	}
-    
-    public  int getType() {
+
+    public int getType() {
         return TGComponentManager.TREQ_REQUIREMENT;
     }
-    
+
     public void checkSizeOfSons() {
-        ((TAttributeRequirement)(tgcomponent[0])).checkMySize();
+        ((TAttributeRequirement) (tgcomponent[0])).checkMySize();
     }
-    
+
     public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
-		
-		componentMenu.addSeparator();
-		
-		if (isRegular == null) {
-			isRegular = new JMenuItem("Set as regular requirement");
-			isFormal = new JMenuItem("Set as formal requirement");
-			isSecurity = new JMenuItem("Set as security requirement");
-			menuNonSatisfied = new JMenuItem("Set as non satisfied");
-			menuSatisfied = new JMenuItem("Set as satisfied");
-			menuNonVerified = new JMenuItem("Set as non verified");
-			menuVerified = new JMenuItem("Set as verified");
-			
-			isRegular.addActionListener(menuAL);
-			isFormal.addActionListener(menuAL);
-			isSecurity.addActionListener(menuAL);
-			menuNonSatisfied.addActionListener(menuAL);
-			menuSatisfied.addActionListener(menuAL);
-			menuNonVerified.addActionListener(menuAL);
-			menuVerified.addActionListener(menuAL);
-			
-			editAttributes = new JMenuItem("Edit attributes");
-			editAttributes.addActionListener(menuAL);
-		}
-		
-		menuNonSatisfied.setEnabled(satisfied);
-		menuSatisfied.setEnabled(!satisfied);
-			
-		menuNonVerified.setEnabled(verified);
-		menuVerified.setEnabled(!verified);
-        
+
+        componentMenu.addSeparator();
+
+        if (isRegular == null) {
+            isRegular = new JMenuItem("Set as regular requirement");
+            isFormal = new JMenuItem("Set as formal requirement");
+            isSecurity = new JMenuItem("Set as security requirement");
+            menuNonSatisfied = new JMenuItem("Set as non satisfied");
+            menuSatisfied = new JMenuItem("Set as satisfied");
+            menuNonVerified = new JMenuItem("Set as non verified");
+            menuVerified = new JMenuItem("Set as verified");
+
+            isRegular.addActionListener(menuAL);
+            isFormal.addActionListener(menuAL);
+            isSecurity.addActionListener(menuAL);
+            menuNonSatisfied.addActionListener(menuAL);
+            menuSatisfied.addActionListener(menuAL);
+            menuNonVerified.addActionListener(menuAL);
+            menuVerified.addActionListener(menuAL);
+
+            editAttributes = new JMenuItem("Edit attributes");
+            editAttributes.addActionListener(menuAL);
+        }
+
+        menuNonSatisfied.setEnabled(satisfied);
+        menuSatisfied.setEnabled(!satisfied);
+
+        menuNonVerified.setEnabled(verified);
+        menuVerified.setEnabled(!verified);
+
         componentMenu.add(isRegular);
-		componentMenu.add(isFormal);
-		componentMenu.add(isSecurity);
-		componentMenu.add(menuNonSatisfied);
-		componentMenu.add(menuSatisfied);
-		componentMenu.add(menuNonVerified);
-		componentMenu.add(menuVerified);
-		componentMenu.add(editAttributes);
+        componentMenu.add(isFormal);
+        componentMenu.add(isSecurity);
+        componentMenu.add(menuNonSatisfied);
+        componentMenu.add(menuSatisfied);
+        componentMenu.add(menuNonVerified);
+        componentMenu.add(menuVerified);
+        componentMenu.add(editAttributes);
     }
-    
+
     public boolean eventOnPopup(ActionEvent e) {
         String s = e.getActionCommand();
         if (s.indexOf("regular") > -1) {
             //
             reqType = 0;
         } else {
-			if (s.indexOf("formal") > 1) {
-				//
-				reqType = 1;
-			} else {
-				if (s.indexOf("security") > 1) {
-				//
-				reqType = 2;
-				} else {
-					if (e.getSource() == menuNonSatisfied) {
-						satisfied = false;
-					} else if (e.getSource() == menuSatisfied) {
-						satisfied = true;
-					} else if (e.getSource() == menuNonVerified) {
-						verified = false;
-					} else if (e.getSource() == menuVerified) {
-						verified = true;
-					} else {
-						return editAttributes();
-					}
-					
-				}
-			}
+            if (s.indexOf("formal") > 1) {
+                //
+                reqType = 1;
+            } else {
+                if (s.indexOf("security") > 1) {
+                    //
+                    reqType = 2;
+                } else {
+                    if (e.getSource() == menuNonSatisfied) {
+                        satisfied = false;
+                    } else if (e.getSource() == menuSatisfied) {
+                        satisfied = true;
+                    } else if (e.getSource() == menuNonVerified) {
+                        verified = false;
+                    } else if (e.getSource() == menuVerified) {
+                        verified = true;
+                    } else {
+                        return editAttributes();
+                    }
+
+                }
+            }
         }
         return true;
     }
-    
+
     public String toString() {
-        String ret =  getValue();
-		
-		ret += "ID=" + id;
-		
+        String ret = getValue();
+
+        ret += "ID=" + id;
+
         if (reqType == 1) {
             ret = ret + " " + FORMAL_REQ;
-        }  else {
-			if (reqType == 0) {
-				ret = ret + " " + REGULAR_REQ;
-			} else {
-				ret = ret + " " + SECURITY_REQ;
-			}
+        } else {
+            if (reqType == 0) {
+                ret = ret + " " + REGULAR_REQ;
+            } else {
+                ret = ret + " " + SECURITY_REQ;
+            }
+        }
+
+        ret += " " + text;
+        ret += " criticality=" + criticality;
+
+        if (reqType == 1) {
+            ret += " violatedAction=" + violatedAction;
+        }
+
+        if (reqType == 2) {
+            ret += " attackTreeNode =" + attackTreeNode;
         }
-		
-		ret += " " + text;
-		ret += " criticality=" + criticality;
-		
-		if (reqType == 1) {
-			ret += " violatedAction=" + violatedAction;
-		}
-		
-		if (reqType == 2) {
-			ret += " attackTreeNode =" + attackTreeNode;
-		}
-		
+
         return ret;
     }
-    
+
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         /*sb.append("<Formal isFormal=\"");
@@ -567,11 +567,11 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
         } else {
             sb.append("false\" />\n");
         }*/
-		sb.append("<type data=\"");
-		sb.append("" + reqType + "\" />\n");
-		
-		if (texts != null) {
-            for(int i=0; i<texts.length; i++) {
+        sb.append("<type data=\"");
+        sb.append("" + reqType + "\" />\n");
+
+        if (texts != null) {
+            for (int i = 0; i < texts.length; i++) {
                 //value = value + texts[i] + "\n";
                 sb.append("<textline data=\"");
                 sb.append(texts[i]);
@@ -586,41 +586,41 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
         sb.append("\" />\n");
         sb.append("<violated data=\"");
         sb.append(violatedAction);
-		sb.append("\" />\n");
-		sb.append("<attackTreeNode data=\"");
+        sb.append("\" />\n");
+        sb.append("<attackTreeNode data=\"");
         sb.append(attackTreeNode);
         sb.append("\" />\n");
-		sb.append("<id data=\"");
+        sb.append("<id data=\"");
         sb.append(id);
         sb.append("\" />\n");
-		sb.append("<satisfied data=\"");
+        sb.append("<satisfied data=\"");
         sb.append(satisfied);
         sb.append("\" />\n");
-		sb.append("<verified data=\"");
+        sb.append("<verified data=\"");
         sb.append(verified);
         sb.append("\" />\n");
         sb.append("</extraparam>\n");
         return new String(sb);
     }
-	
+
     @Override
-    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
+    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
         try {
             NodeList nli;
             Node n1, n2;
             Element elt;
-			String oldtext = text;
+            String oldtext = text;
             text = "";
-			String s;
-            
+            String s;
+
             //
             //
-            
-            for(int i=0; i<nl.getLength(); i++) {
+
+            for (int i = 0; i < nl.getLength(); i++) {
                 n1 = nl.item(i);
                 if (n1.getNodeType() == Node.ELEMENT_NODE) {
                     nli = n1.getChildNodes();
-                    for(int j=0; j<nli.getLength(); j++) {
+                    for (int j = 0; j < nli.getLength(); j++) {
                         n2 = nli.item(j);
                         if (n2.getNodeType() == Node.ELEMENT_NODE) {
                             elt = (Element) n2;
@@ -637,7 +637,7 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
                                 if (s.equals("null")) {
                                     reqType = 0;
                                 }
-								reqType = Integer.decode(s).intValue();
+                                reqType = Integer.decode(s).intValue();
                             } else if (elt.getTagName().equals("textline")) {
                                 //
                                 s = elt.getAttribute("data");
@@ -663,75 +663,75 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
                                 if (violatedAction.equals("null")) {
                                     violatedAction = "";
                                 }
-								//
+                                //
                             } else if (elt.getTagName().equals("id")) {
                                 //
                                 id = elt.getAttribute("data");
                                 if (id.equals("null")) {
                                     id = "";
                                 }
-								//
-							} else if (elt.getTagName().equals("attackTreeNode")) {
+                                //
+                            } else if (elt.getTagName().equals("attackTreeNode")) {
                                 //
                                 attackTreeNode = elt.getAttribute("data");
                                 if (attackTreeNode.equals("null")) {
                                     attackTreeNode = "";
                                 }
-								//
-							} else if (elt.getTagName().equals("satisfied")) {
+                                //
+                            } else if (elt.getTagName().equals("satisfied")) {
                                 //
                                 s = elt.getAttribute("data");
                                 if (s.equals("null")) {
                                     satisfied = false;
                                 } else {
                                     satisfied = s.equals("true");
-								}
-								//
-							} else if (elt.getTagName().equals("verified")) {
+                                }
+                                //
+                            } else if (elt.getTagName().equals("verified")) {
                                 //
                                 s = elt.getAttribute("data");
                                 if (s.equals("null")) {
                                     verified = false;
                                 } else {
                                     verified = s.equals("true");
-								}
-							}
-								//
+                                }
+                            }
+                            //
                         }
                     }
                 }
             }
-			if (text.length() == 0) {
+            if (text.length() == 0) {
                 text = oldtext;
             }
         } catch (Exception e) {
-			
+
             throw new MalformedModelingException();
         }
-		
-		makeValue();
+
+        makeValue();
     }
-    
+
     public String getViolatedAction() {
         return violatedAction;
     }
-	
+
     public String getAttackTreeNode() {
         return attackTreeNode;
     }
-    
+
     public String getText() {
         return text;
     }
-    
-	public String getID() {
-		return id;
-	}
-	
-	public String getKind() {
-		return kind;
-	}
-    
+
+    public String getID() {
+        return id;
+    }
+
+    public String getKind() {
+        return kind;
+    }
+
     public int getCriticality() {
         //
         if (criticality.compareTo("High") == 0) {
@@ -742,103 +742,103 @@ public class Requirement extends TGCScalableWithInternalComponent implements Wit
             return Requirement.LOW;
         }
     }
-	
-	public String getAttributes() {
-		String attr = "ID=" + id + "\n";
-		if (reqType == 1) {
-			attr += "TRDD= " + text + "\n";
-		} else {
-			attr += "Text= " + text + "\n";
-		}
-		attr += "Kind= " + kind + "\n";
-		attr += "Risk= " + criticality + "\n";
-		if (reqType == 2) {
-			attr += "AttackTreeNode=" + attackTreeNode + "\n";
-		}
-		return attr;
-	}
-	
-	public void autoAdjust(int mode) {
-		//
-		
-		if (graphics == null) {
-			return;
-		}
-		
-		Font f = graphics.getFont();
-		Font f0 = f.deriveFont((float)currentFontSize);
-		Font f1 = f0.deriveFont(Font.BOLD);
-		Font f2 = f.deriveFont((float)(currentFontSize - 2));
-		
-		// Must find for both modes which width is desirable
-		String s0, s1;
-		if (reqType == 1) {
-			s0 = FORMAL_REQ;
-			s1 = "TRDD=";
-		} else {
-			if (reqType == 0) {
-				s0 = REGULAR_REQ;
-				s1 = "Text=";
-			} else {
-				s0 = SECURITY_REQ;
-				s1 = "Text=";
-			}
-		}
-		
-		graphics.setFont(f2);
-		int w0 = graphics.getFontMetrics().stringWidth(s0);
-		graphics.setFont(f1);
-		int w1 = graphics.getFontMetrics().stringWidth(value);
-		int w2 = Math.max(w0, w1) + (2 * iconSize);
-		
-		graphics.setFont(f0);
-		int w3, w4 = w2;
-		int i;
-		
-		if(texts.length == 1) {
-			w3 = graphics.getFontMetrics().stringWidth(s1 + "=\"" + texts[0] + "\"");
-			w4 = Math.max(w4, w3);
-		} else {
-			for(i=0; i<texts.length; i++) {
-				if (i == 0) {
-					w3 = graphics.getFontMetrics().stringWidth(s1 + "=\"" + texts[i]);
-				} else if (i == (texts.length - 1)) {
-					w3 = graphics.getFontMetrics().stringWidth(texts[i] + "\"");
-				} else {
-					w3 = graphics.getFontMetrics().stringWidth(texts[i]);
-				}
-				
-				w4 = Math.max(w4, w3+2);
-			}
-		}
-		w3 = graphics.getFontMetrics().stringWidth("Kind=\"" + kind + "\"") + 2;
-		w4 = Math.max(w4, w3);
-		w3 = graphics.getFontMetrics().stringWidth("Risk=\"" + criticality + "\"") + 2;
-		w4 = Math.max(w4, w3);
-		w3 = graphics.getFontMetrics().stringWidth("ID=\"" + id + "\"") + 2;
-		w4 = Math.max(w4, w3);
-		
-		if (reqType == 2) {
-			w3 = graphics.getFontMetrics().stringWidth("Attack Tree Node=\"" + attackTreeNode + "\"") + 2;
-			w4 = Math.max(w4, w3);
-		}
-		
-		
-		if (mode == 1) {
-			resize(w4, lineHeight);
-			return;
-		}
-		
-		int h;
-		if (mode == 2) {
-			h = ((texts.length + 4) * currentFontSize) + lineHeight;
-		} else {
-			h = ((texts.length + 5) * currentFontSize) + lineHeight;
-		}
-		
-		
-		resize(w4, h);
-		
-	}
-    
+
+    public String getAttributes() {
+        String attr = "ID=" + id + "\n";
+        if (reqType == 1) {
+            attr += "TRDD= " + text + "\n";
+        } else {
+            attr += "Text= " + text + "\n";
+        }
+        attr += "Kind= " + kind + "\n";
+        attr += "Risk= " + criticality + "\n";
+        if (reqType == 2) {
+            attr += "AttackTreeNode=" + attackTreeNode + "\n";
+        }
+        return attr;
+    }
+
+    public void autoAdjust(int mode) {
+        //
+
+        if (graphics == null) {
+            return;
+        }
+
+        Font f = graphics.getFont();
+        Font f0 = f.deriveFont((float) currentFontSize);
+        Font f1 = f0.deriveFont(Font.BOLD);
+        Font f2 = f.deriveFont((float) (currentFontSize - 2));
+
+        // Must find for both modes which width is desirable
+        String s0, s1;
+        if (reqType == 1) {
+            s0 = FORMAL_REQ;
+            s1 = "TRDD=";
+        } else {
+            if (reqType == 0) {
+                s0 = REGULAR_REQ;
+                s1 = "Text=";
+            } else {
+                s0 = SECURITY_REQ;
+                s1 = "Text=";
+            }
+        }
+
+        graphics.setFont(f2);
+        int w0 = graphics.getFontMetrics().stringWidth(s0);
+        graphics.setFont(f1);
+        int w1 = graphics.getFontMetrics().stringWidth(value);
+        int w2 = Math.max(w0, w1) + (2 * iconSize);
+
+        graphics.setFont(f0);
+        int w3, w4 = w2;
+        int i;
+
+        if (texts.length == 1) {
+            w3 = graphics.getFontMetrics().stringWidth(s1 + "=\"" + texts[0] + "\"");
+            w4 = Math.max(w4, w3);
+        } else {
+            for (i = 0; i < texts.length; i++) {
+                if (i == 0) {
+                    w3 = graphics.getFontMetrics().stringWidth(s1 + "=\"" + texts[i]);
+                } else if (i == (texts.length - 1)) {
+                    w3 = graphics.getFontMetrics().stringWidth(texts[i] + "\"");
+                } else {
+                    w3 = graphics.getFontMetrics().stringWidth(texts[i]);
+                }
+
+                w4 = Math.max(w4, w3 + 2);
+            }
+        }
+        w3 = graphics.getFontMetrics().stringWidth("Kind=\"" + kind + "\"") + 2;
+        w4 = Math.max(w4, w3);
+        w3 = graphics.getFontMetrics().stringWidth("Risk=\"" + criticality + "\"") + 2;
+        w4 = Math.max(w4, w3);
+        w3 = graphics.getFontMetrics().stringWidth("ID=\"" + id + "\"") + 2;
+        w4 = Math.max(w4, w3);
+
+        if (reqType == 2) {
+            w3 = graphics.getFontMetrics().stringWidth("Attack Tree Node=\"" + attackTreeNode + "\"") + 2;
+            w4 = Math.max(w4, w3);
+        }
+
+
+        if (mode == 1) {
+            resize(w4, lineHeight);
+            return;
+        }
+
+        int h;
+        if (mode == 2) {
+            h = ((texts.length + 4) * currentFontSize) + lineHeight;
+        } else {
+            h = ((texts.length + 5) * currentFontSize) + lineHeight;
+        }
+
+
+        resize(w4, h);
+
+    }
+
 }
diff --git a/src/main/java/ui/sd2/SDInstance.java b/src/main/java/ui/sd2/SDInstance.java
index d2a9348cabbacd845772489f7293c12ca45d85ed..cd0008ce1ec17afc938c7edc4117d650aa07cd42 100755
--- a/src/main/java/ui/sd2/SDInstance.java
+++ b/src/main/java/ui/sd2/SDInstance.java
@@ -365,7 +365,7 @@ public class SDInstance extends TGCScalableWithInternalComponent implements Swal
 
         //add it
         addInternalComponent(tgc, 0);
-        TraceManager.addDev("Element " + tgc + " added to SDInstance");
+        //TraceManager.addDev("Element " + tgc + " added to SDInstance");
 
         return true;
     }
diff --git a/src/main/java/ui/syscams/SysCAMSBlockDE.java b/src/main/java/ui/syscams/SysCAMSBlockDE.java
index 9d8b94cf33832f06d3fc28a50922a94aae56a2c1..05335252589c758ef23a5367abb35dff9738d60d 100644
--- a/src/main/java/ui/syscams/SysCAMSBlockDE.java
+++ b/src/main/java/ui/syscams/SysCAMSBlockDE.java
@@ -54,7 +54,7 @@ import java.util.LinkedList;
 
 /**
  * Class SysCAMSBlockDE
- * Primitive Component. To be used in SystemC-AMSdiagrams
+ * Primitive Component. To be used in SystemC-AMS diagrams
  * Creation: 13/05/2018
  * @version 1.0 13/05/2018
  * @author Irina Kit Yan LEE
@@ -169,15 +169,19 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
         	g.setFont(f.deriveFont(Font.BOLD));
             g.drawString(value, x + textX + 1, y + currentFontSize + textX);
             g.setFont(f.deriveFont(Font.PLAIN));
-        	String s = "Tm = " + this.getPeriod();
-        	g.drawString(s, x + textX + 1, y + height - currentFontSize - textX);
+            if (this.getPeriod() != -1) { 
+				String s = "Tm = " + this.getPeriod() + " " + this.getTime();
+				g.drawString(s, x + textX + 1, y + height - currentFontSize - textX);
+			}
         } else {
         	g.setFont(f.deriveFont(Font.BOLD));
             g.drawString(value, x + (width - w)/2, y + currentFontSize + textX);
             g.setFont(f.deriveFont(Font.PLAIN));
-        	String s = "Tm = " + this.getPeriod();
-        	w = g.getFontMetrics().stringWidth(s);
-        	g.drawString(s, x + (width - w)/2, y + height - currentFontSize - textX);
+        	if (this.getPeriod() != -1) { 
+				String s = "Tm = " + this.getPeriod() + " " + this.getTime();
+				w = g.getFontMetrics().stringWidth(s);
+				g.drawString(s, x + (width - w)/2, y + height - currentFontSize - textX);
+			}
         }
 
         g.setFont(fold);
@@ -335,7 +339,8 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
             sb.append(isAttacker() ? "Yes": "No");
 	        sb.append("\" />\n");
             sb.append("<Attribute period=\"");
-            sb.append(this.getPeriod());
+            sb.append(getPeriod());
+            sb.append("\" time=\"" + getTime());
             sb.append("\" />\n");
         sb.append("</extraparam>\n");
         return new String(sb);
@@ -346,7 +351,9 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
             NodeList nli;
             Node n1, n2;
             Element elt;
+            
             int period;
+            String time;
             
             for(int i=0; i<nl.getLength(); i++) {
                 n1 = nl.item(i);
@@ -361,7 +368,9 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
 							}
                             if (elt.getTagName().equals("Attribute")) {
                                 period = Integer.decode(elt.getAttribute("period")).intValue();
+                                time = elt.getAttribute("time");
                                 setPeriod(period);
+                                setTime(time);
                             }
                         }
                     }
@@ -413,8 +422,8 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
 		return period;
 	}
 
-	public void setPeriod(int period) {
-		this.period = period;
+	public void setPeriod(int _period) {
+		period = _period;
 	}
 
 	public String getAttributes() {
@@ -425,8 +434,7 @@ public class SysCAMSBlockDE extends TGCScalableWithInternalComponent implements
 		return time;
 	}
 
-	public void setTime(String time) {
-		this.time = time;
+	public void setTime(String _time) {
+		time = _time;
 	}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java b/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java
new file mode 100644
index 0000000000000000000000000000000000000000..1ef7d67dd3299a6293bd80ebb614d7322c7d7ace
--- /dev/null
+++ b/src/main/java/ui/syscams/SysCAMSBlockGPIO2VCI.java
@@ -0,0 +1,231 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package ui.syscams;
+
+import myutil.GraphicLib;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import ui.*;
+import ui.util.IconManager;
+import ui.window.JDialogSysCAMSBlockDE;
+import javax.swing.*;
+import java.awt.*;
+import java.util.ArrayList;
+import java.util.LinkedList;
+
+/**
+ * Class SysCAMSBlockGPIO2VCI
+ * Primitive Component. To be used in SystemC-AMS diagrams
+ * Creation: 09/07/2018
+ * @version 1.0 09/07/2018
+ * @author Irina Kit Yan LEE
+ */
+
+public class SysCAMSBlockGPIO2VCI extends TGCScalableWithInternalComponent implements SwallowedTGComponent {
+
+	private int maxFontSize = 14;
+    private int minFontSize = 4;
+    private int currentFontSize = -1;
+    private Color myColor;
+
+    private int textX = 15;
+    private double dtextX = 0.0;
+
+    public String oldValue;
+    
+    public SysCAMSBlockGPIO2VCI(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+        initScaling(200, 150);
+
+        oldScaleFactor = tdp.getZoom();
+        dtextX = textX * oldScaleFactor;
+        textX = (int)dtextX;
+        dtextX = dtextX - textX;
+
+        minWidth = 1;
+        minHeight = 1;
+
+        nbConnectingPoint = 0;
+
+        addTGConnectingPointsComment();
+
+        nbInternalTGComponent = 0;
+
+        moveable = true;
+        multieditable = false;
+        editable = false;
+        removable = true;
+        userResizable = true;
+
+    	value = "Block_GPIO2VCI";
+        name = "Primitive component - Block GPIO2VCI";
+
+        myImageIcon = IconManager.imgic1202;
+
+        actionOnAdd();
+    }
+
+    public void internalDrawing(Graphics g) {
+        int w;
+        Font f = g.getFont();
+        Font fold = f;
+
+        if (myColor == null) {
+        	myColor = Color.white;
+        }
+        
+        if (this.rescaled && !this.tdp.isScaled()) {
+            this.rescaled = false;
+            int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+            f = f.deriveFont((float) maxCurrentFontSize);
+
+            while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+            	if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+            		break;
+            	}
+                maxCurrentFontSize--;
+                f = f.deriveFont((float) maxCurrentFontSize);
+            }
+
+            if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+                maxCurrentFontSize++;
+                f = f.deriveFont((float) maxCurrentFontSize);
+            }
+            g.setFont(f);
+            this.currentFontSize = maxCurrentFontSize;
+        } else {
+            f = f.deriveFont(this.currentFontSize);
+    	}
+
+        Color c = g.getColor();
+        g.drawRect(x, y, width, height);
+        if ((width > 2) && (height > 2)) {
+            g.setColor(myColor);
+            g.fillRect(x+1, y+1, width-1, height-1);
+            g.setColor(c);
+        }
+
+        g.setFont(fold);
+    }
+
+    public void rescale(double scaleFactor){
+        dtextX = (textX + dtextX) / oldScaleFactor * scaleFactor;
+        textX = (int)(dtextX);
+        dtextX = dtextX - textX;
+        super.rescale(scaleFactor);
+    }
+
+    public TGComponent isOnOnlyMe(int _x, int _y) {
+        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+            return this;
+        }
+        return null;
+    }
+
+    public int getType() {
+		return TGComponentManager.CAMS_BLOCK_GPIO2VCI;
+    }
+
+    public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+        return tgc instanceof SysCAMSPortDE;
+    }
+
+    public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+        if (tgc instanceof SysCAMSPortDE) {
+            tgc.setFather(this);
+            tgc.setDrawingZone(true);
+            tgc.resizeWithFather();
+            addInternalComponent(tgc, 0);
+            return true;
+        }
+        return false;
+    }
+
+    public void removeSwallowedTGComponent(TGComponent tgc) {
+        removeInternalComponent(tgc);
+    }
+
+    public void hasBeenResized() {
+        rescaled = true;
+        for(int i=0; i<nbInternalTGComponent; i++) {
+            if (tgcomponent[i] instanceof SysCAMSPortDE) {
+                tgcomponent[i].resizeWithFather();
+            }
+        }
+    }
+
+    public int getCurrentFontSize() {
+        return currentFontSize;
+    }
+
+    public java.util.List<SysCAMSPortDE> getAllDEOriginPorts() {
+        return getAllPorts(1, 1);
+    }
+
+    public java.util.List<SysCAMSPortDE> getAllDEDestinationPorts() {
+        return getAllPorts(1, 0);
+    }
+
+    public java.util.List<SysCAMSPortDE> getAllPorts(int _type, int _isOrigin) {
+    	java.util.List<SysCAMSPortDE> ret = new LinkedList<SysCAMSPortDE>();
+    	SysCAMSPortDE port;
+
+        for(int i=0; i<nbInternalTGComponent; i++) {
+            if (tgcomponent[i] instanceof SysCAMSPortDE) {
+                port = (SysCAMSPortDE)tgcomponent[i];
+                if ((port.getPortType() == _type) && (port.getOrigin() == _isOrigin)) {
+                    ret.add(port);
+                }
+            }
+        }
+        return ret;
+    }
+
+    public java.util.List<SysCAMSPortDE> getAllInternalPortsDE() {
+    	java.util.List<SysCAMSPortDE> list = new ArrayList<SysCAMSPortDE>();
+        for(int i=0; i<nbInternalTGComponent; i++) {
+            if (tgcomponent[i] instanceof SysCAMSPortDE) {
+                list.add((SysCAMSPortDE)(tgcomponent[i]));
+            }
+        }
+        return list;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/ui/syscams/SysCAMSBlockTDF.java b/src/main/java/ui/syscams/SysCAMSBlockTDF.java
index 90d2c3628958627e1302839bb7e6c678f4c1e100..ec5c44ef2c2911b4e53fd9bae132f5d1dda9c28a 100644
--- a/src/main/java/ui/syscams/SysCAMSBlockTDF.java
+++ b/src/main/java/ui/syscams/SysCAMSBlockTDF.java
@@ -64,527 +64,575 @@ public class SysCAMSBlockTDF extends TGCScalableWithInternalComponent implements
 	private int period;
 	private String time;
 	private String processCode;
-	
+	private DefaultListModel<String> listStruct;
+	private String nameTemplate;
+	private String typeTemplate;
+	private DefaultListModel<String> listTypedef;
+
 	private int maxFontSize = 14;
-    private int minFontSize = 4;
-    private int currentFontSize = -1;
-    private Color myColor;
+	private int minFontSize = 4;
+	private int currentFontSize = -1;
+	private Color myColor;
 
 	private boolean isAttacker=false;
 
-    // Attributes
-    public HashMap<String, Integer> attrMap = new HashMap<String, Integer>();
-    public String mappingName;
-    private int textX = 15; // border for ports
-    private double dtextX = 0.0;
-
-    public String oldValue;
-	
-    public SysCAMSBlockTDF(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
-        super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-
-        initScaling(200, 150);
-
-        oldScaleFactor = tdp.getZoom();
-        dtextX = textX * oldScaleFactor;
-        textX = (int)dtextX;
-        dtextX = dtextX - textX;
-
-        minWidth = 1;
-        minHeight = 1;
-
-        nbConnectingPoint = 0;
-
-        addTGConnectingPointsComment();
-
-        nbInternalTGComponent = 0;
-
-        moveable = true;
-        multieditable = true;
-        editable = true;
-        removable = true;
-        userResizable = true;
-
-        value = tdp.findSysCAMSPrimitiveComponentName("Block_TDF_");
-        oldValue = value;
-        name = "Primitive component - Block TDF";
-        
-        // Initialization of port attributes
-        setPeriod(-1);
-        setProcessCode("void processing() {\n\n}");
-        setTime("");
-        
-        myImageIcon = IconManager.imgic1202;
-
-        actionOnAdd();
-    }
-
-    public void internalDrawing(Graphics g) {
-        int w;
-        Font f = g.getFont();
-        Font fold = f;
-
-        if (myColor == null) {
-    		myColor = Color.lightGray;
-        }
-        
-        if (this.rescaled && !this.tdp.isScaled()) {
-            this.rescaled = false;
-            // Must set the font size...
-            // Incrementally find the biggest font not greater than max_font size
-            // If font is less than min_font, no text is displayed
-
-            int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
-            f = f.deriveFont((float) maxCurrentFontSize);
-
-            while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
-            	if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
-            		break;
-            	}
-                maxCurrentFontSize--;
-                f = f.deriveFont((float) maxCurrentFontSize);
-            }
-
-            if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
-                maxCurrentFontSize++;
-                f = f.deriveFont((float) maxCurrentFontSize);
-            }
-            g.setFont(f);
-            this.currentFontSize = maxCurrentFontSize;
-        } else {
-            f = f.deriveFont(this.currentFontSize);
-    	}
-
-        // Zoom is assumed to be computed
-        Color c = g.getColor();
-        g.drawRect(x, y, width, height);
-        if ((width > 2) && (height > 2)) {
-            g.setColor(myColor);
-            g.fillRect(x+1, y+1, width-1, height-1);
-            g.setColor(c);
-        }
-
-        // Set font size
-        int attributeFontSize = this.currentFontSize * 5 / 6;
-        g.setFont(f.deriveFont((float) attributeFontSize));
-        g.setFont(f);
-        w = g.getFontMetrics().stringWidth(value);
-        if (w > (width - 2 * textX)) {
-        	g.setFont(f.deriveFont(Font.BOLD));
-            g.drawString(value, x + textX + 1, y + currentFontSize + textX);
-            g.setFont(f.deriveFont(Font.PLAIN));
-        	String s = "Tm = " + this.getPeriod();
-        	g.drawString(s, x + textX + 1, y + height - currentFontSize - textX);
-        } else {
-        	g.setFont(f.deriveFont(Font.BOLD));
-            g.drawString(value, x + (width - w)/2, y + currentFontSize + textX);
-            g.setFont(f.deriveFont(Font.PLAIN));
-        	String s = "Tm = " + this.getPeriod();
-        	w = g.getFontMetrics().stringWidth(s);
-        	g.drawString(s, x + (width - w)/2, y + height - currentFontSize - textX);
-        }
-
-        g.setFont(fold);
-    }
-     public void drawVerification(Graphics g, int x, int y, int checkConfStatus){
-        Color c = g.getColor();
-        Color c1;
-        switch(checkConfStatus) {
-        case TAttribute.CONFIDENTIALITY_OK:
-            c1 = Color.green;
-            break;
-        case TAttribute.CONFIDENTIALITY_KO:
-            c1 = Color.red;
-            break;
-        default:
-            return;
-        }
+	// Attributes
+	public HashMap<String, Integer> attrMap = new HashMap<String, Integer>();
+	public String mappingName;
+	private int textX = 15; // border for ports
+	private double dtextX = 0.0;
+
+	public String oldValue;
+
+	public SysCAMSBlockTDF(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
+
+		initScaling(200, 150);
+
+		oldScaleFactor = tdp.getZoom();
+		dtextX = textX * oldScaleFactor;
+		textX = (int)dtextX;
+		dtextX = dtextX - textX;
+
+		minWidth = 1;
+		minHeight = 1;
+
+		nbConnectingPoint = 0;
+
+		addTGConnectingPointsComment();
+
+		nbInternalTGComponent = 0;
+
+		moveable = true;
+		multieditable = true;
+		editable = true;
+		removable = true;
+		userResizable = true;
+
+		value = tdp.findSysCAMSPrimitiveComponentName("Block_TDF_");
+		oldValue = value;
+		name = "Primitive component - Block TDF";
+
+		// Initialization of port attributes
+		setPeriod(-1);
+		setProcessCode("void processing() {\n\n}");
+		setTime("");
+		setListStruct(new DefaultListModel<String>());
+		setNameTemplate("");
+		setTypeTemplate("");
+		setListTypedef(new DefaultListModel<String>());
+
+		myImageIcon = IconManager.imgic1202;
+
+		actionOnAdd();
+	}
+
+	public void internalDrawing(Graphics g) {
+		int w;
+		Font f = g.getFont();
+		Font fold = f;
+
+		if (myColor == null) {
+			myColor = Color.lightGray;
+		}
+
+		if (this.rescaled && !this.tdp.isScaled()) {
+			this.rescaled = false;
+			// Must set the font size...
+			// Incrementally find the biggest font not greater than max_font size
+			// If font is less than min_font, no text is displayed
+
+			int maxCurrentFontSize = Math.max(0, Math.min(this.height, (int) (this.maxFontSize * this.tdp.getZoom())));
+			f = f.deriveFont((float) maxCurrentFontSize);
+
+			while (maxCurrentFontSize > (this.minFontSize * this.tdp.getZoom() - 1)) {
+				if (g.getFontMetrics().stringWidth(value) < (width - (2 * textX))) {
+					break;
+				}
+				maxCurrentFontSize--;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+
+			if (this.currentFontSize < this.minFontSize * this.tdp.getZoom()) {
+				maxCurrentFontSize++;
+				f = f.deriveFont((float) maxCurrentFontSize);
+			}
+			g.setFont(f);
+			this.currentFontSize = maxCurrentFontSize;
+		} else {
+			f = f.deriveFont(this.currentFontSize);
+		}
+
+		// Zoom is assumed to be computed
+		Color c = g.getColor();
+		g.drawRect(x, y, width, height);
+		if ((width > 2) && (height > 2)) {
+			g.setColor(myColor);
+			g.fillRect(x+1, y+1, width-1, height-1);
+			g.setColor(c);
+		}
+
+		// Set font size
+		int attributeFontSize = this.currentFontSize * 5 / 6;
+		g.setFont(f.deriveFont((float) attributeFontSize));
+		g.setFont(f);
+		w = g.getFontMetrics().stringWidth(value);
+		if (w > (width - 2 * textX)) {
+			g.setFont(f.deriveFont(Font.BOLD));
+			g.drawString(value, x + textX + 1, y + currentFontSize + textX);
+			g.setFont(f.deriveFont(Font.PLAIN));
+			if (this.getPeriod() != -1) { 
+				String s = "Tm = " + this.getPeriod() + " " + this.getTime();
+				g.drawString(s, x + textX + 1, y + height - currentFontSize - textX);
+			}
+		} else {
+			g.setFont(f.deriveFont(Font.BOLD));
+			g.drawString(value, x + (width - w)/2, y + currentFontSize + textX);
+			g.setFont(f.deriveFont(Font.PLAIN));
+			if (this.getPeriod() != -1) { 
+				String s = "Tm = " + this.getPeriod() + " " + this.getTime();
+				w = g.getFontMetrics().stringWidth(s);
+				g.drawString(s, x + (width - w)/2, y + height - currentFontSize - textX);
+			}
+		}
+
+		g.setFont(fold);
+	}
+	public void drawVerification(Graphics g, int x, int y, int checkConfStatus){
+		Color c = g.getColor();
+		Color c1;
+		switch(checkConfStatus) {
+		case TAttribute.CONFIDENTIALITY_OK:
+			c1 = Color.green;
+			break;
+		case TAttribute.CONFIDENTIALITY_KO:
+			c1 = Color.red;
+			break;
+		default:
+			return;
+		}
 		g.drawOval(x-10, y-10, 6, 9);
 		g.setColor(c1);
 		g.fillRect(x-12, y-5, 9, 7);
 		g.setColor(c);
 		g.drawRect(x-12, y-5, 9, 7);
-    }
-
-    public void rescale(double scaleFactor){
-        dtextX = (textX + dtextX) / oldScaleFactor * scaleFactor;
-        textX = (int)(dtextX);
-        dtextX = dtextX - textX;
-        super.rescale(scaleFactor);
-    }
-
-    public TGComponent isOnOnlyMe(int _x, int _y) {
-        if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
-            return this;
-        }
-        return null;
-    }
+	}
+
+	public void rescale(double scaleFactor){
+		dtextX = (textX + dtextX) / oldScaleFactor * scaleFactor;
+		textX = (int)(dtextX);
+		dtextX = dtextX - textX;
+		super.rescale(scaleFactor);
+	}
+
+	public TGComponent isOnOnlyMe(int _x, int _y) {
+		if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
+			return this;
+		}
+		return null;
+	}
 
 	public boolean isAttacker(){
 		return isAttacker;
 	}
 
-    public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
-    	// On the name ?
-        if (_y <= (y + currentFontSize + textX)) {
-            //TraceManager.addDev("Edit on double click x=" + _x + " y=" + _y);
-            oldValue = value;
-            String s = (String)JOptionPane.showInputDialog(frame, "Name:", "Setting component name",
-                                                           JOptionPane.PLAIN_MESSAGE, IconManager.imgic100,
-                                                           null,
-                                                           getValue());
-            if ((s != null) && (s.length() > 0)) {
-                // Check whether this name is already in use, or not
-
-                if (!TAttribute.isAValidId(s, false, false)) {
-                    JOptionPane.showMessageDialog(frame,
-                                                  "Could not change the name of the component: the new name is not a valid name",
-                                                  "Error",
-                                                  JOptionPane.INFORMATION_MESSAGE);
-                    return false;
-                }
-                if (oldValue.compareTo(s) != 0) {
-                    if (((SysCAMSComponentTaskDiagramPanel)(tdp)).nameBlockTDFComponentInUse(oldValue, s)) {
-                        JOptionPane.showMessageDialog(frame,
-                                                      "Error: the name is already in use",
-                                                      "Name modification",
-                                                      JOptionPane.ERROR_MESSAGE);
-                        return false;
-                    }
-                }
-
-
-                //TraceManager.addDev("Set value with change");
-    			setComponentName(s);
-                setValueWithChange(s);
-				isAttacker = s.contains("Attacker");
-                rescaled = true;
-                //TraceManager.addDev("return true");
-                return true;
-
-            }
-            return false;
-        }
-    	
-    	JDialogSysCAMSBlockTDF jtdf = new JDialogSysCAMSBlockTDF(this);
-    	jtdf.setVisible(true);
-        rescaled = true;
-        return true;
-    }
-
-    public int getType() {
+	public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
+		// On the name ?
+				if (_y <= (y + currentFontSize + textX)) {
+					//TraceManager.addDev("Edit on double click x=" + _x + " y=" + _y);
+					oldValue = value;
+					String s = (String)JOptionPane.showInputDialog(frame, "Name:", "Setting component name",
+							JOptionPane.PLAIN_MESSAGE, IconManager.imgic100,
+							null,
+							getValue());
+					if ((s != null) && (s.length() > 0)) {
+						// Check whether this name is already in use, or not
+
+						if (!TAttribute.isAValidId(s, false, false)) {
+							JOptionPane.showMessageDialog(frame,
+									"Could not change the name of the component: the new name is not a valid name",
+									"Error",
+									JOptionPane.INFORMATION_MESSAGE);
+							return false;
+						}
+						if (oldValue.compareTo(s) != 0) {
+							if (((SysCAMSComponentTaskDiagramPanel)(tdp)).nameBlockTDFComponentInUse(oldValue, s)) {
+								JOptionPane.showMessageDialog(frame,
+										"Error: the name is already in use",
+										"Name modification",
+										JOptionPane.ERROR_MESSAGE);
+								return false;
+							}
+						}
+
+
+						//TraceManager.addDev("Set value with change");
+						setComponentName(s);
+						setValueWithChange(s);
+						isAttacker = s.contains("Attacker");
+						rescaled = true;
+						//TraceManager.addDev("return true");
+						return true;
+
+					}
+					return false;
+				}
+
+				JDialogSysCAMSBlockTDF jtdf = new JDialogSysCAMSBlockTDF(this);
+				jtdf.setVisible(true);
+				rescaled = true;
+				return true;
+	}
+
+	public int getType() {
 		return TGComponentManager.CAMS_BLOCK_TDF;
-    }
-
-    public void wasSwallowed() {
-        myColor = null;
-    }
-
-    public void wasUnswallowed() {
-        myColor = null;
-        setFather(null);
-        TDiagramPanel tdp = getTDiagramPanel();
-        setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
-    }
-
-    public boolean acceptSwallowedTGComponent(TGComponent tgc) {
-    	if (tgc instanceof SysCAMSPortTDF) {
-    		return tgc instanceof SysCAMSPortTDF;
-    	} else if (tgc instanceof SysCAMSPortConverter) {
-    		return tgc instanceof SysCAMSPortConverter;
-    	} else {
-    		return true;
-    	}
-    }
-
-    public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
-        //TraceManager.addDev("Add swallow component");
-        // Choose its position
-        // Make it an internal component
-        // It's one of my son
-        //Set its coordinates
-        if (tgc instanceof SysCAMSPortTDF) {
-            tgc.setFather(this);
-            tgc.setDrawingZone(true);
-            tgc.resizeWithFather();
-            addInternalComponent(tgc, 0);
-            return true;
-        }
-        if (tgc instanceof SysCAMSPortConverter) {
-        	tgc.setFather(this);
-        	tgc.setDrawingZone(true);
-        	tgc.resizeWithFather();
-        	addInternalComponent(tgc, 0);
-        	return true;
-        }
-        return false;
-    }
-
-    public void removeSwallowedTGComponent(TGComponent tgc) {
-        removeInternalComponent(tgc);
-    }
-
-    public void hasBeenResized() {
-        rescaled = true;
-        for(int i=0; i<nbInternalTGComponent; i++) {
-            if (tgcomponent[i] instanceof SysCAMSPortTDF) {
-                tgcomponent[i].resizeWithFather();
-            }
-            if (tgcomponent[i] instanceof SysCAMSPortConverter) {
-            	tgcomponent[i].resizeWithFather();
-            }
-        }
-        if (getFather() != null) {
-            resizeWithFather();
-        }
-    }
-
-    public void resizeWithFather() {
-        if ((father != null) && (father instanceof SysCAMSCompositeComponent)) {
-            // Too large to fit in the father? -> resize it!
-            resizeToFatherSize();
-
-            setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight());
-            setMoveCd(x, y);
-        }
-    }
-
-    protected String translateExtraParam() {
-    	StringBuffer proc;
-    	
-        StringBuffer sb = new StringBuffer("<extraparam>\n");
+	}
+
+	public void wasSwallowed() {
+		myColor = null;
+	}
+
+	public void wasUnswallowed() {
+		myColor = null;
+		setFather(null);
+		TDiagramPanel tdp = getTDiagramPanel();
+		setCdRectangle(tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY());
+	}
+
+	public boolean acceptSwallowedTGComponent(TGComponent tgc) {
+		if (tgc instanceof SysCAMSPortTDF) {
+			return tgc instanceof SysCAMSPortTDF;
+		} else if (tgc instanceof SysCAMSPortConverter) {
+			return tgc instanceof SysCAMSPortConverter;
+		} else {
+			return true;
+		}
+	}
+
+	public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
+		//TraceManager.addDev("Add swallow component");
+		// Choose its position
+		// Make it an internal component
+		// It's one of my son
+		//Set its coordinates
+		if (tgc instanceof SysCAMSPortTDF) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		if (tgc instanceof SysCAMSPortConverter) {
+			tgc.setFather(this);
+			tgc.setDrawingZone(true);
+			tgc.resizeWithFather();
+			addInternalComponent(tgc, 0);
+			return true;
+		}
+		return false;
+	}
+
+	public void removeSwallowedTGComponent(TGComponent tgc) {
+		removeInternalComponent(tgc);
+	}
+
+	public void hasBeenResized() {
+		rescaled = true;
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof SysCAMSPortTDF) {
+				tgcomponent[i].resizeWithFather();
+			}
+			if (tgcomponent[i] instanceof SysCAMSPortConverter) {
+				tgcomponent[i].resizeWithFather();
+			}
+		}
+		if (getFather() != null) {
+			resizeWithFather();
+		}
+	}
+
+	public void resizeWithFather() {
+		if ((father != null) && (father instanceof SysCAMSCompositeComponent)) {
+			// Too large to fit in the father? -> resize it!
+					resizeToFatherSize();
+
+			setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight());
+			setMoveCd(x, y);
+		}
+	}
+
+	protected String translateExtraParam() {
+		StringBuffer proc;
+
+		StringBuffer sb = new StringBuffer("<extraparam>\n");
 		sb.append("<Data isAttacker=\"");
-        sb.append(isAttacker() ? "Yes": "No");
-        sb.append("\" />\n");
-        sb.append("<Attribute period=\"");
-        sb.append(this.getPeriod());
-        sb.append("\" processCode=\"");
-        proc = encode(this.getProcessCode());
-        sb.append(proc);
-        sb.append("\" />\n");
-        sb.append("</extraparam>\n");
-        return new String(sb);
-    }
-
-    public StringBuffer encode(String data) {
-    	StringBuffer databuf = new StringBuffer(data);
-    	StringBuffer buffer = new StringBuffer("");
-        for(int pos = 0; pos != data.length(); pos++) {
-        	char c = databuf.charAt(pos);
-            switch(c) {
-                case '&' :  
-                	buffer.append("&amp;");       
-                	break;
-                case '\"' : 
-                	buffer.append("&quot;");      
-                	break;
-                case '\'' : 
-                	buffer.append("&apos;");      
-                	break;
-                case '<' :  
-                	buffer.append("&lt;");        
-                	break;
-                case '>' :  
-                	buffer.append("&gt;");        
-                	break;
-                default :   
-                	buffer.append(databuf.charAt(pos)); 
-                	break;
-            }
-        }
-        return buffer;
-    }
-    
-    public StringBuffer decode(String data) {
-    	StringBuffer databuf = new StringBuffer(data);
-    	StringBuffer buffer = new StringBuffer("");
-    	int endline = 0;
-    	int nb_arobase = 0;
-    	int condition = 0;
-    	
-        for(int pos = 0; pos != data.length(); pos++) {
-        	char c = databuf.charAt(pos);
-            switch(c) {
-                case '\n' :
-                	break;
-                case '\t' :
-                	break;
-                case '{'  : 
-                	buffer.append("{\n"); 
-                	endline = 1;
-                	nb_arobase++;
-                	break;
-                case '}'  : 
-                	if (nb_arobase == 1) {
-                		buffer.append("}\n"); 
-                		endline = 0;
-                	} else {
-                		int i = nb_arobase;
-                		while (i > 1) {
-                			buffer.append("\t");
-                			i--;
-                		}
-                		buffer.append("}\n"); 
-                		endline = 1;
-                	}
-                	nb_arobase--;
-                	break;
-                case ';'  :
-                	if (condition == 1) {
-                		buffer.append(";");
-                	} else {
-                		buffer.append(";\n");
-                		endline = 1;
-                	}
-                	break;
-                case ' '  :
-                	if (endline == 0) {
-                		buffer.append(databuf.charAt(pos)); 
-                	}
-                	break;
-                case '(' :
-                	buffer.append("(");
-                	condition = 1;
-                	break;
-                case ')' :
-                	buffer.append(")");
-                	condition = 0;
-                	break;
-                default   : 
-                	if (endline == 1) {
-                		endline = 0;
-                		int i = nb_arobase;
-                		while (i >= 1) {
-                			buffer.append("\t");
-                			i--;
-                		}
-                	}
-                	buffer.append(databuf.charAt(pos)); 
-                	break;
-            }
-        }
-        return buffer;
-    }
-        
-    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
-        try {
-            NodeList nli;
-            Node n1, n2;
-            Element elt;
-            int period;
-            String processCode;
-            
-            for(int i=0; i<nl.getLength(); i++) {
-                n1 = nl.item(i);
-                if (n1.getNodeType() == Node.ELEMENT_NODE) {
-                    nli = n1.getChildNodes();
-                    for(int j=0; j<nli.getLength(); j++) {
-                        n2 = nli.item(j);
-                        if (n2.getNodeType() == Node.ELEMENT_NODE) {
-                            elt = (Element) n2;
+		sb.append(isAttacker() ? "Yes": "No");
+		sb.append("\" />\n");
+		sb.append("<Attribute period=\"" + getPeriod());
+		sb.append("\" time=\"" + getTime());
+		sb.append("\" processCode=\"" + encode(getProcessCode()));
+		sb.append("\" listStruct=\"" + splitParameters(getListStruct()));
+		sb.append("\" nameTemplate=\"" + getNameTemplate());
+		sb.append("\" typeTemplate=\"" + getTypeTemplate());
+		sb.append("\" listTypedef=\"" + splitParameters(getListTypedef()));
+		sb.append("\" />\n");
+		sb.append("</extraparam>\n");
+		return new String(sb);
+	}
+
+	public String splitParameters(DefaultListModel listStruct) {
+		String s = "";
+
+		for (int i = 0; i < listStruct.getSize(); i++) {
+			if (i < listStruct.getSize()-1) {
+				s = s + listStruct.get(i) + "|";
+			} else {
+				s = s + listStruct.get(i);
+			}
+		}
+		return s;
+	}
+
+	public StringBuffer encode(String data) {
+		StringBuffer databuf = new StringBuffer(data);
+		StringBuffer buffer = new StringBuffer("");
+		for(int pos = 0; pos != data.length(); pos++) {
+			char c = databuf.charAt(pos);
+			switch(c) {
+			case '&' :  
+				buffer.append("&amp;");       
+				break;
+			case '\"' : 
+				buffer.append("&quot;");      
+				break;
+			case '\'' : 
+				buffer.append("&apos;");      
+				break;
+			case '<' :  
+				buffer.append("&lt;");        
+				break;
+			case '>' :  
+				buffer.append("&gt;");        
+				break;
+			default :   
+				buffer.append(databuf.charAt(pos)); 
+				break;
+			}
+		}
+		return buffer;
+	}
+
+	public StringBuffer decode(String data) {
+		StringBuffer databuf = new StringBuffer(data);
+		StringBuffer buffer = new StringBuffer("");
+		int endline = 0;
+		int nb_arobase = 0;
+		int condition = 0;
+
+		for(int pos = 0; pos != data.length(); pos++) {
+			char c = databuf.charAt(pos);
+			switch(c) {
+			case '\n' :
+				break;
+			case '\t' :
+				break;
+			case '{'  : 
+				buffer.append("{\n"); 
+				endline = 1;
+				nb_arobase++;
+				break;
+			case '}'  : 
+				if (nb_arobase == 1) {
+					buffer.append("}\n"); 
+					endline = 0;
+				} else {
+					int i = nb_arobase;
+					while (i > 1) {
+						buffer.append("\t");
+						i--;
+					}
+					buffer.append("}\n"); 
+					endline = 1;
+				}
+				nb_arobase--;
+				break;
+			case ';'  :
+				if (condition == 1) {
+					buffer.append(";");
+				} else {
+					buffer.append(";\n");
+					endline = 1;
+				}
+				break;
+			case ' '  :
+				if (endline == 0) {
+					buffer.append(databuf.charAt(pos)); 
+				}
+				break;
+			case '(' :
+				buffer.append("(");
+				condition = 1;
+				break;
+			case ')' :
+				buffer.append(")");
+				condition = 0;
+				break;
+			default   : 
+				if (endline == 1) {
+					endline = 0;
+					int i = nb_arobase;
+					while (i >= 1) {
+						buffer.append("\t");
+						i--;
+					}
+				}
+				buffer.append(databuf.charAt(pos)); 
+				break;
+			}
+		}
+		return buffer;
+	}
+
+	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
+		try {
+			NodeList nli;
+			Node n1, n2;
+			Element elt;
+
+			int period;
+			String time, processCode, listStruct, nameTemplate, typeTemplate, listTypedef;
+
+			for(int i=0; i<nl.getLength(); i++) {
+				n1 = nl.item(i);
+				if (n1.getNodeType() == Node.ELEMENT_NODE) {
+					nli = n1.getChildNodes();
+					for(int j=0; j<nli.getLength(); j++) {
+						n2 = nli.item(j);
+						if (n2.getNodeType() == Node.ELEMENT_NODE) {
+							elt = (Element) n2;
 							if (elt.getTagName().equals("Data")) {
-                                isAttacker = elt.getAttribute("isAttacker").equals("Yes");
+								isAttacker = elt.getAttribute("isAttacker").equals("Yes");
+							}
+							if (elt.getTagName().equals("Attribute")) {
+								period = Integer.decode(elt.getAttribute("period")).intValue();
+								time = elt.getAttribute("time");
+								processCode = elt.getAttribute("processCode");
+								listStruct = elt.getAttribute("listStruct");
+								nameTemplate = elt.getAttribute("nameTemplate");
+								typeTemplate = elt.getAttribute("typeTemplate");
+								listTypedef = elt.getAttribute("listTypedef");
+								setPeriod(period);
+								setTime(time);
+								processCode = decode(processCode).toString();
+								setProcessCode(processCode);
+								String[] splita = listStruct.split("\\|");
+								DefaultListModel<String> lista = new DefaultListModel<String>();
+								for (String s : splita) {
+									lista.addElement(s);
+								}
+								setListStruct(lista);
+								setNameTemplate(nameTemplate);
+								setTypeTemplate(typeTemplate);
+								String[] splitb = listTypedef.split("\\|");
+								DefaultListModel<String> listb = new DefaultListModel<String>();
+								for (String s : splitb) {
+									listb.addElement(s);
+								}
+								setListTypedef(listb);
 							}
-                            if (elt.getTagName().equals("Attribute")) {
-                                period = Integer.decode(elt.getAttribute("period")).intValue();
-                                processCode = elt.getAttribute("processCode");
-                                setPeriod(period);
-                                processCode = decode(processCode).toString();
-                                setProcessCode(processCode);
-                            }
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            throw new MalformedModelingException();
-        }
-    }
-
-    public int getCurrentFontSize() {
-        return currentFontSize;
-    }
-
-    public java.util.List<SysCAMSPortTDF> getAllTDFOriginPorts() {
-        return getAllTDFPorts(0, 1);
-    }
-
-    public java.util.List<SysCAMSPortTDF> getAllTDFDestinationPorts() {
-        return getAllTDFPorts(0, 0);
-    }
-    
-    public java.util.List<SysCAMSPortConverter> getAllConvOriginPorts() {
-    	return getAllConvPorts(0, 1);
-    }
-    
-    public java.util.List<SysCAMSPortConverter> getAllConvDestinationPorts() {
-    	return getAllConvPorts(0, 0);
-    }
-
-    public java.util.List<SysCAMSPortTDF> getAllTDFPorts(int _type, int _isOrigin) {
-    	java.util.List<SysCAMSPortTDF> ret = new LinkedList<SysCAMSPortTDF>();
-    	SysCAMSPortTDF port;
-
-        for(int i=0; i<nbInternalTGComponent; i++) {
-            if (tgcomponent[i] instanceof SysCAMSPortTDF) {
-                port = (SysCAMSPortTDF)tgcomponent[i];
-                if ((port.getPortType() == _type) && (port.getOrigin() == _isOrigin)) {
-                    ret.add(port);
-                }
-            }
-        }
-        return ret;
-    }
-    
-    public java.util.List<SysCAMSPortConverter> getAllConvPorts(int _type, int _isOrigin) {
-    	java.util.List<SysCAMSPortConverter> ret = new LinkedList<SysCAMSPortConverter>();
-    	SysCAMSPortConverter port;
-    	
-    	for(int i=0; i<nbInternalTGComponent; i++) {
-    		if (tgcomponent[i] instanceof SysCAMSPortConverter) {
-    			port = (SysCAMSPortConverter)tgcomponent[i];
-    			if ((port.getPortType() == _type) && (port.getOrigin() == _isOrigin)) {
-    				ret.add(port);
-    			}
-    		}
-    	}
-    	return ret;
-    }
-
-    public java.util.List<SysCAMSPortTDF> getAllInternalPortsTDF() {
-    	java.util.List<SysCAMSPortTDF> list = new ArrayList<SysCAMSPortTDF>();
-        for(int i=0; i<nbInternalTGComponent; i++) {
-            if (tgcomponent[i] instanceof SysCAMSPortTDF) {
-                list.add((SysCAMSPortTDF)(tgcomponent[i]));
-            }
-        }
-        return list;
-    }
-    
-    public java.util.List<SysCAMSPortConverter> getAllInternalPortsConv() {
-    	java.util.List<SysCAMSPortConverter> list = new ArrayList<SysCAMSPortConverter>();
-    	for(int i=0; i<nbInternalTGComponent; i++) {
-    		if (tgcomponent[i] instanceof SysCAMSPortConverter) {
-    			list.add((SysCAMSPortConverter)(tgcomponent[i]));
-    		}
-    	}
-    	return list;
-    }
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			throw new MalformedModelingException();
+		}
+	}
+
+	public int getCurrentFontSize() {
+		return currentFontSize;
+	}
+
+	public java.util.List<SysCAMSPortTDF> getAllTDFOriginPorts() {
+		return getAllTDFPorts(0, 1);
+	}
+
+	public java.util.List<SysCAMSPortTDF> getAllTDFDestinationPorts() {
+		return getAllTDFPorts(0, 0);
+	}
+
+	public java.util.List<SysCAMSPortConverter> getAllConvOriginPorts() {
+		return getAllConvPorts(0, 1);
+	}
+
+	public java.util.List<SysCAMSPortConverter> getAllConvDestinationPorts() {
+		return getAllConvPorts(0, 0);
+	}
+
+	public java.util.List<SysCAMSPortTDF> getAllTDFPorts(int _type, int _isOrigin) {
+		java.util.List<SysCAMSPortTDF> ret = new LinkedList<SysCAMSPortTDF>();
+		SysCAMSPortTDF port;
+
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof SysCAMSPortTDF) {
+				port = (SysCAMSPortTDF)tgcomponent[i];
+				if ((port.getPortType() == _type) && (port.getOrigin() == _isOrigin)) {
+					ret.add(port);
+				}
+			}
+		}
+		return ret;
+	}
+
+	public java.util.List<SysCAMSPortConverter> getAllConvPorts(int _type, int _isOrigin) {
+		java.util.List<SysCAMSPortConverter> ret = new LinkedList<SysCAMSPortConverter>();
+		SysCAMSPortConverter port;
+
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof SysCAMSPortConverter) {
+				port = (SysCAMSPortConverter)tgcomponent[i];
+				if ((port.getPortType() == _type) && (port.getOrigin() == _isOrigin)) {
+					ret.add(port);
+				}
+			}
+		}
+		return ret;
+	}
+
+	public java.util.List<SysCAMSPortTDF> getAllInternalPortsTDF() {
+		java.util.List<SysCAMSPortTDF> list = new ArrayList<SysCAMSPortTDF>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof SysCAMSPortTDF) {
+				list.add((SysCAMSPortTDF)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
+
+	public java.util.List<SysCAMSPortConverter> getAllInternalPortsConv() {
+		java.util.List<SysCAMSPortConverter> list = new ArrayList<SysCAMSPortConverter>();
+		for(int i=0; i<nbInternalTGComponent; i++) {
+			if (tgcomponent[i] instanceof SysCAMSPortConverter) {
+				list.add((SysCAMSPortConverter)(tgcomponent[i]));
+			}
+		}
+		return list;
+	}
 
 	public String getProcessCode() {
 		return processCode;
 	}
 
-	public void setProcessCode(String processCode) {
-		this.processCode = processCode;
+	public void setProcessCode(String _processCode) {
+		processCode = _processCode;
 	}
 
 	public int getPeriod() {
 		return period;
 	}
 
-	public void setPeriod(int period) {
-		this.period = period;
+	public void setPeriod(int _period) {
+		period = _period;
 	}
 
 	public String getAttributes() {
@@ -595,8 +643,39 @@ public class SysCAMSBlockTDF extends TGCScalableWithInternalComponent implements
 		return time;
 	}
 
-	public void setTime(String time) {
-		this.time = time;
+	public void setTime(String _time) {
+		time = _time;
+	}
+
+	public DefaultListModel<String> getListStruct() {
+		return listStruct;
+	}
+
+	public void setListStruct(DefaultListModel<String> _listStruct) {
+		listStruct = _listStruct;
 	}
-}
 
+	public String getNameTemplate() {
+		return nameTemplate;
+	}
+
+	public void setNameTemplate(String _nameTemplate) {
+		nameTemplate = _nameTemplate;
+	}
+
+	public String getTypeTemplate() {
+		return typeTemplate;
+	}
+
+	public void setTypeTemplate(String _typeTemplate) {
+		typeTemplate = _typeTemplate;
+	}
+
+	public DefaultListModel<String> getListTypedef() {
+		return listTypedef;
+	}
+
+	public void setListTypedef(DefaultListModel<String> _listTypedef) {
+		listTypedef = _listTypedef;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/syscams/SysCAMSCompositeComponent.java b/src/main/java/ui/syscams/SysCAMSCompositeComponent.java
index ed78d9a1427cd3253bfaa79be58471431161c8c7..271359851291f8d9006172da62791cb5ee1f7b6b 100644
--- a/src/main/java/ui/syscams/SysCAMSCompositeComponent.java
+++ b/src/main/java/ui/syscams/SysCAMSCompositeComponent.java
@@ -246,9 +246,6 @@ public class SysCAMSCompositeComponent extends TGCScalableWithInternalComponent
         tgc.setDrawingZone(true);
         
         //Set its coordinates
-        if (tgc instanceof SysCAMSCompositeComponent) {
-            tgc.resizeWithFather();
-        }
 		if (tgc instanceof SysCAMSBlockTDF) {
             tgc.resizeWithFather();
         }
@@ -286,28 +283,12 @@ public class SysCAMSCompositeComponent extends TGCScalableWithInternalComponent
     public void hasBeenResized() {
 		rescaled = true;
         for(int i=0; i<nbInternalTGComponent; i++) {
-			if (tgcomponent[i] instanceof SysCAMSCompositeComponent) {
-				tgcomponent[i].resizeWithFather();
-			}
 			if (tgcomponent[i] instanceof SysCAMSBlockTDF) {
 				tgcomponent[i].resizeWithFather();
 			}
 			if (tgcomponent[i] instanceof SysCAMSBlockDE) {
 				tgcomponent[i].resizeWithFather();
 			}
-        }
-		if (getFather() != null) {
-			resizeWithFather();
-		}
-    }
-	
-	public void resizeWithFather() {
-        if ((father != null) && ((father instanceof SysCAMSCompositeComponent) || (father instanceof SysCAMSBlockTDF) || (father instanceof SysCAMSBlockDE))) {
-			// Too large to fit in the father? -> resize it!
-			resizeToFatherSize();
-			
-            setCdRectangle(0, father.getWidth() - getWidth(), 0, father.getHeight() - getHeight());
-            setMoveCd(x, y);
         }
     }
 	
@@ -507,5 +488,4 @@ public class SysCAMSCompositeComponent extends TGCScalableWithInternalComponent
     		return true;
     	}
 	}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/ui/tmlad/TMLADReadChannel.java b/src/main/java/ui/tmlad/TMLADReadChannel.java
index a72fd4e6de43cb064e0c85780a2450f669830ce4..97b2a4358cde48b05e00ece0fbda06432b9d9e4d 100755
--- a/src/main/java/ui/tmlad/TMLADReadChannel.java
+++ b/src/main/java/ui/tmlad/TMLADReadChannel.java
@@ -93,7 +93,8 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
 
     public int reachabilityInformation;
 
-
+	public boolean isEncForm = true;
+	
     public TMLADReadChannel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
@@ -182,7 +183,12 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         g.drawString(value, x + linebreak + textX0, y + textY1);
 
         if (!securityContext.equals("")) {
+        	c = g.getColor();
+	        if (!isEncForm){
+	        	g.setColor(Color.RED);
+	        }
             g.drawString("sec:" + securityContext, x + 3 * width / 4, y + height + textY1 - decSec);
+            g.setColor(c);
         }
         drawReachabilityInformation(g);
         if (getCheckLatency()) {
@@ -284,16 +290,19 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         tab1.help = help;
 
         TabInfo tab2 = new TabInfo("Security");
-        labels = new String[2];
-        values = new String[2];
+        labels = new String[3];
+        values = new String[3];
         labels[0] = "Security Pattern";
         values[0] = securityContext;
         labels[1] = "Attacker?";
         values[1] = isAttacker ? "Yes" : "No";
+        labels[2] = "Encrypted Form?";
+        values[2] = isEncForm ? "Yes" : "No";        
         help = new ArrayList<String[]>();
         String[] choice = new String[]{"Yes", "No"};
         help.add(tdp.getMGUI().getCurrentCryptoConfig());
         help.add(choice);
+        help.add(choice);
         tab2.labels=labels;
         tab2.values =  values;
         tab2.help = help;
@@ -313,6 +322,7 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
             nbOfSamples = jdmsat.getString(0, 1);
             securityContext = jdmsat.getString(1, 0);
             isAttacker = jdmsat.getString(1, 1).equals("Yes");
+            isEncForm = jdmsat.getString(1, 2).equals("Yes");
             makeValue();
             return true;
         }
@@ -337,6 +347,8 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
         sb.append(securityContext);
         sb.append("\" isAttacker=\"");
         sb.append(isAttacker ? "Yes" : "No");
+        sb.append("\" isEncForm=\"");
+        sb.append(isEncForm ? "Yes" : "No");
         sb.append("\" />\n");
         sb.append("</extraparam>\n");
         return new String(sb);
@@ -363,6 +375,12 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
                                 nbOfSamples = elt.getAttribute("nbOfSamples");
                                 securityContext = elt.getAttribute("secPattern");
                                 isAttacker = elt.getAttribute("isAttacker").equals("Yes");
+                                isEncForm = elt.getAttribute("isEncForm").equals("Yes");    
+                                if (elt.getAttribute("isEncForm").equals("") || !elt.hasAttribute("isEncForm")){
+                                	if (!securityContext.equals("")){
+                                		isEncForm=true;
+                                	}
+                                }
                             }
                         }
                     }
@@ -399,6 +417,14 @@ public class TMLADReadChannel extends TGCWithoutInternalComponent implements Che
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
+	public boolean getEncForm(){
+		return isEncForm;
+	}
+		
+	public void setEncForm(boolean encForm){
+		isEncForm=encForm;
+	}
+
 
     public void setChannelName(String s) {
         channelName = s;
diff --git a/src/main/java/ui/tmlad/TMLADWriteChannel.java b/src/main/java/ui/tmlad/TMLADWriteChannel.java
index 9fd95d7744d6e20a315e84c42556903c699f0fae..3eb3ca19ac03d308891229890dce37ff025d1af7 100755
--- a/src/main/java/ui/tmlad/TMLADWriteChannel.java
+++ b/src/main/java/ui/tmlad/TMLADWriteChannel.java
@@ -94,6 +94,8 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
 
     public int reachabilityInformation;
 
+	public boolean isEncForm = true;
+
     public TMLADWriteChannel(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
@@ -176,7 +178,12 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         }
         g.drawString(value, x + (width - w) / 2, y + textY);
         if (!securityContext.equals("")) {
+	        c = g.getColor();
+	        if (!isEncForm){
+	        	g.setColor(Color.RED);
+	        }
             g.drawString("sec:" + securityContext, x + 3 * width / 4, y + height + textY - decSec);
+            g.setColor(c);
         }
 
         if (getCheckLatency()) {
@@ -283,28 +290,40 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         values[0] = channelName;
         labels[1] = "Nb of samples";
         values[1] = nbOfSamples;
+
+      /*  labels[2] = "Security Pattern";
+        values[2] = securityContext;
+		labels[3] = "Attacker?";
+		values[3] = isAttacker ? "Yes" : "No"; */
+        ArrayList<String []> help = new ArrayList<String []>();
+		String[] allOutChannels = tdp.getMGUI().getAllOutChannels();
+		if (isAttacker){
+			allOutChannels =tdp.getMGUI().getAllCompOutChannels();
+		}
+		String[] choice = new String[]{"Yes", "No"};
+		help.add(allOutChannels);
+		help.add(null);
+	//	help.add(tdp.getMGUI().getCurrentCryptoConfig());
+		//help.add(choice);
+
         tab1.labels=labels;
         tab1.values =  values;
-        ArrayList<String[]> help = new ArrayList<String[]>();
-        String[] allOutChannels = tdp.getMGUI().getAllOutChannels();
-        if (isAttacker) {
-            allOutChannels = tdp.getMGUI().getAllCompOutChannels();
-        }
-        help.add(allOutChannels);
-        help.add(null);
         tab1.help = help;
 
         TabInfo tab2 = new TabInfo("Security");
-        labels = new String[2];
-        values = new String[2];
+        labels = new String[3];
+        values = new String[3];
         labels[0] = "Security Pattern";
         values[0] = securityContext;
         labels[1] = "Attacker?";
         values[1] = isAttacker ? "Yes" : "No";
+        labels[2] = "Encrypted Form?";
+        values[2] = isEncForm ? "Yes" : "No";        
         help = new ArrayList<String[]>();
-        String[] choice = new String[]{"Yes", "No"};
+
         help.add(tdp.getMGUI().getCurrentCryptoConfig());
         help.add(choice);
+        help.add(choice);
         tab2.labels=labels;
         tab2.values =  values;
         tab2.help = help;
@@ -313,6 +332,7 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         tabs.add(tab1);
         tabs.add(tab2);
 
+
         //JDialogTwoString jdts = new JDialogTwoString(frame, "Setting channel's properties", "Channel name", channelName, "Nb of samples", nbOfSamples);
         JDialogMultiStringAndTabs jdmsat = new JDialogMultiStringAndTabs(frame, "Write in channel", tabs);
         //jdms.setSize(600, 300);
@@ -324,7 +344,11 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
             nbOfSamples = jdmsat.getString(0, 1);
             securityContext = jdmsat.getString(1, 0);
             isAttacker = jdmsat.getString(1, 1).equals("Yes");
+            isEncForm = jdmsat.getString(1, 2).equals("Yes");
             makeValue();
+            
+
+            
             return true;
         }
 
@@ -342,6 +366,8 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         sb.append(securityContext);
         sb.append("\" isAttacker=\"");
         sb.append(isAttacker ? "Yes" : "No");
+        sb.append("\" isEncForm=\"");
+        sb.append(isEncForm ? "Yes" : "No");
         sb.append("\" />\n");
         sb.append("</extraparam>\n");
         return new String(sb);
@@ -374,6 +400,12 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
                                 nbOfSamples = elt.getAttribute("nbOfSamples");
                                 securityContext = elt.getAttribute("secPattern");
                                 isAttacker = elt.getAttribute("isAttacker").equals("Yes");
+                                isEncForm = elt.getAttribute("isEncForm").equals("Yes");                                   
+                                if (elt.getAttribute("isEncForm").equals("") || !elt.hasAttribute("isEncForm")){
+                                	if (!securityContext.equals("")){
+                                		isEncForm=true;
+                                	}
+                                }
                             }
                         }
                     }
@@ -422,6 +454,15 @@ public class TMLADWriteChannel extends TGCWithoutInternalComponent implements Ch
         return isAttacker;
     }
 
+	public boolean getEncForm(){
+		return isEncForm;
+	}
+	
+	
+	public void setEncForm(boolean encForm){
+		isEncForm=encForm;
+	}
+
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
diff --git a/src/main/java/ui/tmldd/TMLArchiBUSNode.java b/src/main/java/ui/tmldd/TMLArchiBUSNode.java
index cbeab82a107888378014ef0c2ee0053aeca8f328..401a636bd9d33df55a59ee4f775e459711ac89c4 100755
--- a/src/main/java/ui/tmldd/TMLArchiBUSNode.java
+++ b/src/main/java/ui/tmldd/TMLArchiBUSNode.java
@@ -153,7 +153,7 @@ public class TMLArchiBUSNode extends TMLArchiCommunicationNode implements Swallo
         // Icon
         //g.drawImage(IconManager.imgic1102.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1102.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
 
         c = g.getColor();
 
diff --git a/src/main/java/ui/tmldd/TMLArchiBridgeNode.java b/src/main/java/ui/tmldd/TMLArchiBridgeNode.java
index 4a16d83d79ef94194f1def9ebb17d6a38bc02729..a2e3d9c73f2832446b002c1b8e77cad64a320ffd 100755
--- a/src/main/java/ui/tmldd/TMLArchiBridgeNode.java
+++ b/src/main/java/ui/tmldd/TMLArchiBridgeNode.java
@@ -143,7 +143,7 @@ public class TMLArchiBridgeNode extends TMLArchiCommunicationNode implements Swa
         // Icon
         //g.drawImage(IconManager.imgic1104.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1104.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/tmldd/TMLArchiCPUNode.java b/src/main/java/ui/tmldd/TMLArchiCPUNode.java
index c98b722da614504985554198c96e3973974e1525..d6a51eaddaa9f8105cf5d7b38984da10f28fbcb8 100755
--- a/src/main/java/ui/tmldd/TMLArchiCPUNode.java
+++ b/src/main/java/ui/tmldd/TMLArchiCPUNode.java
@@ -1,26 +1,26 @@
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
+ *
  * ludovic.apvrille AT enst.fr
- * 
+ *
  * This software is a computer program whose purpose is to allow the
  * edition of TURTLE analysis, design and deployment diagrams, to
  * allow the generation of RT-LOTOS or Java code from this diagram,
  * and at last to allow the analysis of formal validation traces
  * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
  * from INRIA Rhone-Alpes.
- * 
+ *
  * This software is governed by the CeCILL  license under French law and
  * abiding by the rules of distribution of free software.  You can  use,
  * modify and/ or redistribute the software under the terms of the CeCILL
  * license as circulated by CEA, CNRS and INRIA at the following URL
  * "http://www.cecill.info".
- * 
+ *
  * As a counterpart to the access to the source code and  rights to copy,
  * modify and redistribute granted by the license, users are provided only
  * with a limited warranty  and the software's author,  the holder of the
  * economic rights,  and the successive licensors  have only  limited
  * liability.
- * 
+ *
  * In this respect, the user's attention is drawn to the risks associated
  * with loading,  using,  modifying and/or developing or reproducing the
  * software by the user in light of its specific status of free software,
@@ -31,14 +31,12 @@
  * requirements in conditions enabling the security of their systems and/or
  * data to be ensured and,  more generally, to use and operate it in the
  * same conditions as regards security.
- * 
+ *
  * The fact that you are presently reading this means that you have had
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
 
-
-
 package ui.tmldd;
 
 import myutil.GraphicLib;
@@ -56,11 +54,12 @@ import java.awt.*;
 import java.util.Vector;
 
 /**
-   * Class TMLArchiCPUNode
-   * Node. To be used in TML architecture diagrams.
-   * Creation: 02/05/2005
-   * @version 1.1 21/05/2008
-   * @author Ludovic APVRILLE
+ * Class TMLArchiCPUNode
+ * Node. To be used in TML architecture diagrams.
+ * Creation: 02/05/2005
+ *
+ * @author Ludovic APVRILLE
+ * @version 1.1 21/05/2008
  */
 public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent, WithAttributes, TMLArchiElementInterface {
     private int textY1 = 15;
@@ -82,7 +81,8 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
     private int execcTime = HwCPU.DEFAULT_EXECC_TIME;
     private int cacheMiss = HwCPU.DEFAULT_CACHE_MISS;
     private int encryption = HwCPU.ENCRYPTION_NONE;
-    public TMLArchiCPUNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
+
+    public TMLArchiCPUNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
         width = 250;
@@ -142,22 +142,22 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
 
         // Filling color
         g.setColor(ColorManager.CPU_BOX_1);
-        g.fill3DRect(x+1, y+1, width-1, height-1, true);
+        g.fill3DRect(x + 1, y + 1, width - 1, height - 1, true);
         g.setColor(c);
 
         // Strings
         String ster = "<<" + stereotype + ">>";
-        int w  = g.getFontMetrics().stringWidth(ster);
+        int w = g.getFontMetrics().stringWidth(ster);
         Font f = g.getFont();
         g.setFont(f.deriveFont(Font.BOLD));
-        g.drawString(ster, x + (width - w)/2, y + textY1);
+        g.drawString(ster, x + (width - w) / 2, y + textY1);
         g.setFont(f);
-        w  = g.getFontMetrics().stringWidth(name);
-        g.drawString(name, x + (width - w)/2, y + textY2);
+        w = g.getFontMetrics().stringWidth(name);
+        g.drawString(name, x + (width - w) / 2, y + textY2);
 
         // Icon
         g.drawImage(IconManager.imgic1100.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
@@ -191,11 +191,11 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
         int tmp;
         String tmpName;
 
-        JDialogCPUNode dialog = new JDialogCPUNode(frame, "Setting CPU attributes", this, MECType, transactions );
+        JDialogCPUNode dialog = new JDialogCPUNode(frame, "Setting CPU attributes", this, MECType, transactions);
         dialog.setSize(500, 450);
-        GraphicLib.centerOnParent(dialog, 500, 450 );
-       // dialog.show(); // blocked until dialog has been closed
-        dialog.setVisible( true );
+        GraphicLib.centerOnParent(dialog, 500, 450);
+        // dialog.show(); // blocked until dialog has been closed
+        dialog.setVisible(true);
         MECType = dialog.getMECType();
 
         if (!dialog.isRegularClose()) {
@@ -404,9 +404,9 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
         encryption = dialog.getEncryption();
         if (error) {
             JOptionPane.showMessageDialog(frame,
-                                          "Invalid value for the following attributes: " + errors,
-                                          "Error",
-                                          JOptionPane.INFORMATION_MESSAGE);
+                    "Invalid value for the following attributes: " + errors,
+                    "Error",
+                    JOptionPane.INFORMATION_MESSAGE);
             return false;
         }
 
@@ -444,17 +444,17 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
 
     public Vector<TMLArchiArtifact> getArtifactList() {
         Vector<TMLArchiArtifact> v = new Vector<TMLArchiArtifact>();
-        
-        for(int i=0; i<nbInternalTGComponent; i++) {
+
+        for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof TMLArchiArtifact) {
-                v.add( (TMLArchiArtifact) tgcomponent[i] );
+                v.add((TMLArchiArtifact) tgcomponent[i]);
             }
         }
         return v;
     }
 
     public void hasBeenResized() {
-        for(int i=0; i<nbInternalTGComponent; i++) {
+        for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof TMLArchiArtifact) {
                 tgcomponent[i].resizeWithFather();
             }
@@ -486,24 +486,24 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
     }
 
     @Override
-    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
+    public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException {
         //
         try {
 
             NodeList nli;
             Node n1, n2;
             Element elt;
-           // int t1id;
+            // int t1id;
             String sstereotype = null, snodeName = null;
 
-            for(int i=0; i<nl.getLength(); i++) {
+            for (int i = 0; i < nl.getLength(); i++) {
                 n1 = nl.item(i);
                 //
                 if (n1.getNodeType() == Node.ELEMENT_NODE) {
                     nli = n1.getChildNodes();
 
                     // Issue #17 copy-paste error on j index
-                    for(int j=0; j<nli.getLength(); j++) {
+                    for (int j = 0; j < nli.getLength(); j++) {
                         n2 = nli.item(j);
                         //
                         if (n2.getNodeType() == Node.ELEMENT_NODE) {
@@ -515,7 +515,7 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
                             if (sstereotype != null) {
                                 stereotype = sstereotype;
                             }
-                            if (snodeName != null){
+                            if (snodeName != null) {
                                 name = snodeName;
                             }
 
@@ -526,38 +526,37 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
                                 } catch (Exception e) {
                                 }
                                 byteDataSize = Integer.decode(elt.getAttribute("byteDataSize")).intValue();
-                                schedulingPolicy =Integer.decode(elt.getAttribute("schedulingPolicy")).intValue();
+                                schedulingPolicy = Integer.decode(elt.getAttribute("schedulingPolicy")).intValue();
                                 goIdleTime = Integer.decode(elt.getAttribute("goIdleTime")).intValue();
                                 pipelineSize = Integer.decode(elt.getAttribute("pipelineSize")).intValue();
                                 taskSwitchingTime = Integer.decode(elt.getAttribute("taskSwitchingTime")).intValue();
                                 branchingPredictionPenalty = Integer.decode(elt.getAttribute("branchingPredictionPenalty")).intValue();
-                                if ((elt.getAttribute("cacheMiss") != null) &&  (elt.getAttribute("cacheMiss").length() > 0)){
+                                if ((elt.getAttribute("cacheMiss") != null) && (elt.getAttribute("cacheMiss").length() > 0)) {
                                     cacheMiss = Integer.decode(elt.getAttribute("cacheMiss")).intValue();
                                 }
-                                if ((elt.getAttribute("execiTime") != null) &&  (elt.getAttribute("execiTime").length() > 0)){
+                                if ((elt.getAttribute("execiTime") != null) && (elt.getAttribute("execiTime").length() > 0)) {
                                     execiTime = Integer.decode(elt.getAttribute("execiTime")).intValue();
                                 }
-                                if ((elt.getAttribute("execcTime") != null) &&  (elt.getAttribute("execcTime").length() > 0)){
+                                if ((elt.getAttribute("execcTime") != null) && (elt.getAttribute("execcTime").length() > 0)) {
                                     execcTime = Integer.decode(elt.getAttribute("execcTime")).intValue();
                                 }
-                                if ((elt.getAttribute("maxConsecutiveIdleCycles") != null) &&  (elt.getAttribute("maxConsecutiveIdleCycles").length() > 0)){
+                                if ((elt.getAttribute("maxConsecutiveIdleCycles") != null) && (elt.getAttribute("maxConsecutiveIdleCycles").length() > 0)) {
                                     maxConsecutiveIdleCycles = Integer.decode(elt.getAttribute("maxConsecutiveIdleCycles")).intValue();
                                 }
-                                if ((elt.getAttribute("clockRatio") != null) &&  (elt.getAttribute("clockRatio").length() > 0)){
+                                if ((elt.getAttribute("clockRatio") != null) && (elt.getAttribute("clockRatio").length() > 0)) {
                                     clockRatio = Integer.decode(elt.getAttribute("clockRatio")).intValue();
                                 }
-                                if ((elt.getAttribute("MECType") != null) &&  (elt.getAttribute("MECType").length() > 0)){
-                                    if( elt.getAttribute("MECType").length() > 1 )      {       //old format
+                                if ((elt.getAttribute("MECType") != null) && (elt.getAttribute("MECType").length() > 0)) {
+                                    if (elt.getAttribute("MECType").length() > 1) {       //old format
                                         MECType = ArchUnitMEC.Types.get(0);
-                                    }
-                                    else        {
-                                        MECType = ArchUnitMEC.Types.get( Integer.valueOf( elt.getAttribute("MECType") ) );
+                                    } else {
+                                        MECType = ArchUnitMEC.Types.get(Integer.valueOf(elt.getAttribute("MECType")));
                                     }
                                 }
-                                if ((elt.getAttribute("sliceTime") != null) &&  (elt.getAttribute("sliceTime").length() > 0)){
+                                if ((elt.getAttribute("sliceTime") != null) && (elt.getAttribute("sliceTime").length() > 0)) {
                                     sliceTime = Integer.decode(elt.getAttribute("sliceTime")).intValue();
                                 }
-                                if ((elt.getAttribute("encryption") != null) &&  (elt.getAttribute("encryption").length() > 0)){
+                                if ((elt.getAttribute("encryption") != null) && (elt.getAttribute("encryption").length() > 0)) {
                                     encryption = Integer.decode(elt.getAttribute("encryption")).intValue();
                                 }
                             }
@@ -575,55 +574,55 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
         return TGComponentManager.CONNECTOR_NODE_TMLARCHI;
     }
 
-    public int getNbOfCores(){
+    public int getNbOfCores() {
         return nbOfCores;
     }
 
-    public int getByteDataSize(){
+    public int getByteDataSize() {
         return byteDataSize;
     }
 
-    public int getPipelineSize(){
+    public int getPipelineSize() {
         return pipelineSize;
     }
 
-    public int getGoIdleTime(){
+    public int getGoIdleTime() {
         return goIdleTime;
     }
 
-    public int getMaxConsecutiveIdleCycles(){
+    public int getMaxConsecutiveIdleCycles() {
         return maxConsecutiveIdleCycles;
     }
 
-    public int getExeciTime(){
+    public int getExeciTime() {
         return execiTime;
     }
 
-    public int getExeccTime(){
+    public int getExeccTime() {
         return execcTime;
     }
 
-    public int getTaskSwitchingTime(){
+    public int getTaskSwitchingTime() {
         return taskSwitchingTime;
     }
 
-    public int getBranchingPredictionPenalty(){
+    public int getBranchingPredictionPenalty() {
         return branchingPredictionPenalty;
     }
 
-    public int getCacheMiss(){
+    public int getCacheMiss() {
         return cacheMiss;
     }
 
-    public int getSchedulingPolicy(){
+    public int getSchedulingPolicy() {
         return schedulingPolicy;
     }
 
-    public int getSliceTime(){
+    public int getSliceTime() {
         return sliceTime;
     }
 
-    public int getEncryption(){
+    public int getEncryption() {
         return encryption;
     }
 
@@ -645,12 +644,12 @@ public class TMLArchiCPUNode extends TMLArchiNode implements SwallowTGComponent,
         attr += "Cache miss (in %) = " + cacheMiss + "\n";
         attr += "Clock divider = " + clockRatio + "\n";
         attr += "MECType = " + MECType.getIndex() + "\n";
-        attr += "encryption = " + encryption+ "\n";
+        attr += "encryption = " + encryption + "\n";
         return attr;
 
     }
 
-    public int getComponentType()       {
+    public int getComponentType() {
         return CONTROLLER;
     }
 
diff --git a/src/main/java/ui/tmldd/TMLArchiDMANode.java b/src/main/java/ui/tmldd/TMLArchiDMANode.java
index e13dd8e3f1798dc3f454155ab1f260fd9c8a7d73..56b2613910d6f924b2b96e630462598fae653322 100755
--- a/src/main/java/ui/tmldd/TMLArchiDMANode.java
+++ b/src/main/java/ui/tmldd/TMLArchiDMANode.java
@@ -145,7 +145,7 @@ public class TMLArchiDMANode extends TMLArchiCommunicationNode implements Swallo
         // Icon
         //g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/tmldd/TMLArchiFPGANode.java b/src/main/java/ui/tmldd/TMLArchiFPGANode.java
index d62361c6fa7732e7414c9954aae738f3d53e2053..0f75348ccd0ffa510866a18740784eaacd4b021f 100755
--- a/src/main/java/ui/tmldd/TMLArchiFPGANode.java
+++ b/src/main/java/ui/tmldd/TMLArchiFPGANode.java
@@ -154,7 +154,7 @@ public class TMLArchiFPGANode extends TMLArchiNode implements SwallowTGComponent
 
         // Icon
         g.drawImage(IconManager.imgic1120.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/tmldd/TMLArchiFirewallNode.java b/src/main/java/ui/tmldd/TMLArchiFirewallNode.java
index 5eed19e5398d45b1a33cb0287be36a7ed60dfe1a..6546aa40cfe3fbdae956b3b8d3524fd0ef8349ab 100644
--- a/src/main/java/ui/tmldd/TMLArchiFirewallNode.java
+++ b/src/main/java/ui/tmldd/TMLArchiFirewallNode.java
@@ -141,7 +141,7 @@ public class TMLArchiFirewallNode extends TMLArchiCommunicationNode implements S
 		// Icon
 		
 		g.drawImage(IconManager.imgic7001.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		//g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
     
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/tmldd/TMLArchiMemoryNode.java b/src/main/java/ui/tmldd/TMLArchiMemoryNode.java
index d370ae492a6d68fbee961b52219eeeed34eb86e2..c9ee0d6c7322cb34926fe4a435a7949333a68556 100755
--- a/src/main/java/ui/tmldd/TMLArchiMemoryNode.java
+++ b/src/main/java/ui/tmldd/TMLArchiMemoryNode.java
@@ -147,7 +147,7 @@ public class TMLArchiMemoryNode extends TMLArchiCommunicationNode implements Swa
         // Icon
         //g.drawImage(IconManager.imgic1108.getImage(), x + width - 20, y + 4, null);
         g.drawImage(IconManager.imgic1108.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        //g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
     }
 
     public TGComponent isOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java
index 0469eec396a69141e087a94639c439c4b72a188a..e01fe7c01efcc94c7e56c0bff171f00e0cbf4b56 100755
--- a/src/main/java/ui/util/DefaultText.java
+++ b/src/main/java/ui/util/DefaultText.java
@@ -50,8 +50,8 @@ package ui.util;
  */
 public class DefaultText {
 
-    public static String BUILD = "12677";
-    public static String DATE = "2018/07/01 02:01:44 CET";
+    public static String BUILD = "12688";
+    public static String DATE = "2018/07/09 02:01:34 CET";
 
     public static StringBuffer sbAbout = makeAbout();
 
diff --git a/src/main/java/ui/util/IconManager.java b/src/main/java/ui/util/IconManager.java
index 24cc34118927f73fa0b14595e707f6ac470c5d26..aa45540b10c3e3279a383a73a2d48810766ea0c1 100755
--- a/src/main/java/ui/util/IconManager.java
+++ b/src/main/java/ui/util/IconManager.java
@@ -183,7 +183,7 @@ public class IconManager {
     public static ImageIcon imgic2111; //New icon created by Solange
     
     // SystemC-AMS
-    public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006, imgic8007, imgic8008;
+    public static ImageIcon imgic8000, imgic8001, imgic8002, imgic8003, imgic8004, imgic8005, imgic8006, imgic8007, imgic8008, imgic8009;
 
     // ELN
     public static ImageIcon imgic8010, imgic8011, imgic8012, imgic8013, imgic8014, imgic8015, imgic8016, imgic8017, imgic8018, imgic8019, imgic8020,
@@ -674,7 +674,9 @@ public class IconManager {
     private static String icon8006 = "camsclusterblock.gif";
     private static String icon8007 = "camstdfblock.gif";
     private static String icon8008 = "camsdeblock.gif";
+    private static String icon8009 = "camsgpio2vciblock.gif";
 
+    // ELN
     private static String icon8010 = "elnresistor.gif";
     private static String icon8011 = "elncapacitor.gif";
     private static String icon8012 = "elninductor.gif";
@@ -1184,6 +1186,7 @@ public class IconManager {
         imgic8006 = getIcon(icon8006);
         imgic8007 = getIcon(icon8007);
         imgic8008 = getIcon(icon8008);
+        imgic8009 = getIcon(icon8009);
 
         imgic8010 = getIcon(icon8010);
         imgic8011 = getIcon(icon8011);
diff --git a/src/main/java/ui/window/DeadlockItem.java b/src/main/java/ui/window/DeadlockItem.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/DeadlockTableModel.java b/src/main/java/ui/window/DeadlockTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/EquipmentsNCTableModel.java b/src/main/java/ui/window/EquipmentsNCTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/GateSimulationTrace.java b/src/main/java/ui/window/GateSimulationTrace.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/GeneralInfoNCTableModel.java b/src/main/java/ui/window/GeneralInfoNCTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JBirdPanel.java b/src/main/java/ui/window/JBirdPanel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADConnector.java b/src/main/java/ui/window/JDialogADConnector.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDBusNode.java b/src/main/java/ui/window/JDialogADDBusNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDCPUNode.java b/src/main/java/ui/window/JDialogADDCPUNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDCoproMWMRNode.java b/src/main/java/ui/window/JDialogADDCoproMWMRNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDCrossbarNode.java b/src/main/java/ui/window/JDialogADDCrossbarNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDICUNode.java b/src/main/java/ui/window/JDialogADDICUNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDMemoryNode.java b/src/main/java/ui/window/JDialogADDMemoryNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDTTYNode.java b/src/main/java/ui/window/JDialogADDTTYNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDTimerNode.java b/src/main/java/ui/window/JDialogADDTimerNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogADDVgmnNode.java b/src/main/java/ui/window/JDialogADDVgmnNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogArrayGet.java b/src/main/java/ui/window/JDialogArrayGet.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogArraySet.java b/src/main/java/ui/window/JDialogArraySet.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogArtifact.java b/src/main/java/ui/window/JDialogArtifact.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAssumption.java b/src/main/java/ui/window/JDialogAssumption.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAttack.java b/src/main/java/ui/window/JDialogAttack.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAttribute.java b/src/main/java/ui/window/JDialogAttribute.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarBlock.java b/src/main/java/ui/window/JDialogAvatarBlock.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarBlockArtifact.java b/src/main/java/ui/window/JDialogAvatarBlockArtifact.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarChannelArtifact.java b/src/main/java/ui/window/JDialogAvatarChannelArtifact.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarLibraryFunction.java b/src/main/java/ui/window/JDialogAvatarLibraryFunction.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarProperty.java b/src/main/java/ui/window/JDialogAvatarProperty.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarPropertyConnector.java b/src/main/java/ui/window/JDialogAvatarPropertyConnector.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarSignal.java b/src/main/java/ui/window/JDialogAvatarSignal.java
old mode 100755
new mode 100644
index 1a033232c7e2e160721c06d604017dad59678427..c463100117e717db09c6518b180c254d5dfd0185
--- a/src/main/java/ui/window/JDialogAvatarSignal.java
+++ b/src/main/java/ui/window/JDialogAvatarSignal.java
@@ -36,14 +36,12 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.window;
 
 import ui.AvatarSignal;
 import ui.util.IconManager;
 import ui.TGComponent;
+import myutil.TraceManager;
 
 import javax.swing.*;
 import java.awt.*;
@@ -52,6 +50,8 @@ import java.awt.event.ActionListener;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Vector;
+
+
 /**
  * Class JDialogAvatarSignal
  * Dialog for managing several string components
@@ -100,6 +100,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
         pack();
     }
 
+
     private void makeSignals() {
         showSignals = new LinkedList<String> ();
         realSignals = new LinkedList<AvatarSignal> ();
@@ -112,9 +113,11 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
     }
 
 
+
     private void myInitComponents() {
     }
 
+
     private void initComponents() {
         Container c = getContentPane();
         //GridBagLayout gridbag0 = new GridBagLayout();
@@ -140,18 +143,12 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
         c1.gridwidth = GridBagConstraints.REMAINDER; //end row
         c1.fill = GridBagConstraints.BOTH;
         c1.gridheight = 1;
-        listSignals = new JComboBox<String>(showSignals.toArray (new String[0]));
+        c1.anchor = GridBagConstraints.CENTER;
         panel1.add(new JLabel(" "), c1);
 
         // Combo box
-        c1.gridwidth = 1;
-        c1.gridheight = 1;
-        c1.weighty = 1.0;
-        c1.weightx = 1.0;
         c1.fill = GridBagConstraints.HORIZONTAL;
-        c1.anchor = GridBagConstraints.CENTER;
-        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
-        listSignals = new JComboBox<String> (showSignals.toArray (new String[0]));
+        listSignals = new JComboBox<String> (showSignals.toArray (new String[showSignals.size()]));
         panel1.add(listSignals, c1);
 
 
@@ -176,29 +173,18 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
 		c1.gridwidth = GridBagConstraints.REMAINDER; //end row
 		refChecks = new JComboBox<TGComponent>(refs);
 		refChecks.insertItemAt(null, 0);
-		if (reference!=null){
+		TraceManager.addDev("Reference=" + reference);
+		if (reference != null){
 			refChecks.setSelectedItem(reference);
-		}
+		} else {
+		    refChecks.setSelectedIndex(0);
+        }
 		panel1.add(refChecks,c1);
 
-
-        // main panel;
-        /*c0.gridwidth = 1;
-        c0.gridheight = 10;
-        c0.weighty = 1.0;
-        c0.weightx = 1.0;
-        c0.gridwidth = GridBagConstraints.REMAINDER; //end row*/
-
         c.add(panel1, BorderLayout.CENTER);
 
-
-
-
-        //c0.gridwidth = 1;
-        //c0.gridheight = 1;
-        //c0.fill = GridBagConstraints.HORIZONTAL;
-
-        initButtons(c, this);
+        JPanel buttons = initBasicButtons(this);
+        c.add(buttons, BorderLayout.SOUTH);
     }
 
     public void	actionPerformed(ActionEvent evt)  {
diff --git a/src/main/java/ui/window/JDialogAvatarState.java b/src/main/java/ui/window/JDialogAvatarState.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarTimer.java b/src/main/java/ui/window/JDialogAvatarTimer.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogAvatarTransition.java b/src/main/java/ui/window/JDialogAvatarTransition.java
old mode 100755
new mode 100644
index d729bb5436eaa5f11316558c2b7dd4f664931bef..fa6a4772183309ec845df40fff2b1dd71a851c19
--- a/src/main/java/ui/window/JDialogAvatarTransition.java
+++ b/src/main/java/ui/window/JDialogAvatarTransition.java
@@ -209,7 +209,7 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
 		c1.gridheight = 1;
 		c1.fill = GridBagConstraints.BOTH;
 		c1.gridheight = 1;
-		panel1.add(new JLabel("weight in [0...1000] (default = 0.5) = "), c1);
+		panel1.add(new JLabel("weight in [0...1000] (default = 1) = "), c1);
 		c1.gridwidth = GridBagConstraints.REMAINDER; //end row
 		probabilityT = new JTextField(probability);
 		panel1.add(probabilityT, c1);
diff --git a/src/main/java/ui/window/JDialogAvatarddExecutableCodeGeneration.java b/src/main/java/ui/window/JDialogAvatarddExecutableCodeGeneration.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogBUSNode.java b/src/main/java/ui/window/JDialogBUSNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogBase.java b/src/main/java/ui/window/JDialogBase.java
index b3aacf69d60f5a52ea07162aca16015f7c7329aa..92dae668abc1375f4e5dd907a941e06bf66dfd25 100644
--- a/src/main/java/ui/window/JDialogBase.java
+++ b/src/main/java/ui/window/JDialogBase.java
@@ -101,6 +101,10 @@ public class JDialogBase extends JDialog {
 		return buttonPanel;
 	}
 
+	protected void renameSaveButton(String label) {
+		closeButton.setText(label);
+	}
+
 
 
 	protected void initButtons(Container c,
diff --git a/src/main/java/ui/window/JDialogBisimulation.java b/src/main/java/ui/window/JDialogBisimulation.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogBisimulationBisimulator.java b/src/main/java/ui/window/JDialogBisimulationBisimulator.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogBridgeNode.java b/src/main/java/ui/window/JDialogBridgeNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogCCodeGeneration.java b/src/main/java/ui/window/JDialogCCodeGeneration.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogCPUNode.java b/src/main/java/ui/window/JDialogCPUNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogCancel.java b/src/main/java/ui/window/JDialogCancel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogChannel.java b/src/main/java/ui/window/JDialogChannel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogCode.java b/src/main/java/ui/window/JDialogCode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogCommunicationArtifact.java b/src/main/java/ui/window/JDialogCommunicationArtifact.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogConstraint.java b/src/main/java/ui/window/JDialogConstraint.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogConstraintText.java b/src/main/java/ui/window/JDialogConstraintText.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogCountermeasure.java b/src/main/java/ui/window/JDialogCountermeasure.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogCrossbarNode.java b/src/main/java/ui/window/JDialogCrossbarNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogELNPortTerminal.java b/src/main/java/ui/window/JDialogELNPortTerminal.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f686dfb4c1bde08071461455c72416102ba17b5
--- /dev/null
+++ b/src/main/java/ui/window/JDialogELNPortTerminal.java
@@ -0,0 +1,151 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package ui.window;
+
+import ui.eln.ELNPortTerminal;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+/**
+ * Class JDialogELNPortTerminal 
+ * Dialog for managing of ELN port terminal
+ * Creation: 06/07/2018
+ * @version 1.0 06/07/2018
+ * @author Irina Kit Yan LEE
+ */
+
+@SuppressWarnings("serial")
+
+public class JDialogELNPortTerminal extends JDialog implements ActionListener {
+
+	private JTextField nameTextField;
+
+	private ELNPortTerminal term;
+
+	public JDialogELNPortTerminal(ELNPortTerminal term) {
+		this.setTitle("Setting Port Terminal Attributes");
+		this.setLocationRelativeTo(null);
+		this.setVisible(true);
+		this.setAlwaysOnTop(true);
+		this.setResizable(false);
+
+		this.term = term;
+
+		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
+		getRootPane().getActionMap().put("close", new AbstractAction() {
+			public void actionPerformed(ActionEvent e) {
+				dispose();
+			}
+		});
+
+		dialog();
+	}
+
+	public void dialog() {
+		JPanel mainPanel = new JPanel(new BorderLayout());
+		this.add(mainPanel);
+
+		JPanel attributesMainPanel = new JPanel();
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); 
+
+		attributesMainPanel.setLayout(new BorderLayout());
+
+		Box attributesBox = Box.createVerticalBox();
+		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting port terminal attributes"));
+
+		GridBagLayout gridBag = new GridBagLayout();
+		GridBagConstraints constraints = new GridBagConstraints();
+		JPanel attributesBoxPanel = new JPanel();
+		attributesBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		attributesBoxPanel.setLayout(gridBag);
+
+		JLabel labelName = new JLabel("Name : ");
+		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+		attributesBoxPanel.add(labelName);
+
+		if (term.getValue().toString().equals("")) {
+			nameTextField = new JTextField(10);
+		} else {
+			nameTextField = new JTextField(term.getValue().toString(), 10); 
+		}
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(nameTextField, constraints);
+		attributesBoxPanel.add(nameTextField);
+
+		attributesBox.add(attributesBoxPanel);
+
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
+
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		pack();
+		this.getRootPane().setDefaultButton(saveCloseButton);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		if ("Save_Close".equals(e.getActionCommand())) {
+			term.setValue(new String(nameTextField.getText()));
+			this.dispose();
+		}
+
+		if ("Cancel".equals(e.getActionCommand())) {
+			this.dispose();
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogEventArtifact.java b/src/main/java/ui/window/JDialogEventArtifact.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogFPGANode.java b/src/main/java/ui/window/JDialogFPGANode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogFault.java b/src/main/java/ui/window/JDialogFault.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogFaultCountermeasure.java b/src/main/java/ui/window/JDialogFaultCountermeasure.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogFormalValidation.java b/src/main/java/ui/window/JDialogFormalValidation.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogGenAUT.java b/src/main/java/ui/window/JDialogGenAUT.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogGenAUTS.java b/src/main/java/ui/window/JDialogGenAUTS.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogGraphModification.java b/src/main/java/ui/window/JDialogGraphModification.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogHwANode.java b/src/main/java/ui/window/JDialogHwANode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogIDAndStereotype.java b/src/main/java/ui/window/JDialogIDAndStereotype.java
new file mode 100644
index 0000000000000000000000000000000000000000..c941478b4817ee855f3271151180806d10fb1bd2
--- /dev/null
+++ b/src/main/java/ui/window/JDialogIDAndStereotype.java
@@ -0,0 +1,244 @@
+/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ * 
+ * ludovic.apvrille AT enst.fr
+ * 
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ * 
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ * 
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ * 
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ * 
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ */
+
+package ui.window;
+
+import ui.AvatarSignal;
+import ui.ColorManager;
+import ui.util.IconManager;
+import ui.TGComponent;
+import myutil.TraceManager;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Vector;
+
+
+/**
+ * Class JDialogIDAndStereotype
+ * Dialog for managing several names and stereotype
+ * Creation: 04/07/2018
+ * @version 1.0 04/07/2018
+ * @author Ludovic APVRILLE
+ */
+public class JDialogIDAndStereotype extends JDialogBase implements ActionListener  {
+
+    private String[] availableStereotypes;
+    private Color[] colors;
+    private String currentName;
+    private int currentStereotype;
+    private Color defaultColor;
+
+
+    private JPanel panel1;
+
+    // Panel1
+    private JComboBox<String> listStereotypes;
+    private JButton selectStereotype;
+    private JTextField stereotype, name;
+    private JButton colorButton;
+    private JButton useDefaultColor;
+
+
+    private boolean cancelled;
+
+    /** Creates new form  */
+    public JDialogIDAndStereotype(Frame _f, String _title,
+                                  String[] _availableStereotypes, String _currentName,
+                                  int _currentStereotype, Color[] _colors, Color _defaultColor) {
+
+        super(_f, _title, true);
+
+        availableStereotypes = _availableStereotypes;
+        colors = _colors;
+        currentName = _currentName;
+        currentStereotype = _currentStereotype;
+        defaultColor = _defaultColor;
+
+        initComponents();
+        myInitComponents();
+
+        pack();
+    }
+
+
+
+    private void myInitComponents() {
+    }
+
+
+    private void initComponents() {
+        Container c = getContentPane();
+        //GridBagLayout gridbag0 = new GridBagLayout();
+        GridBagLayout gridbag1 = new GridBagLayout();
+        //GridBagConstraints c0 = new GridBagConstraints();
+        GridBagConstraints c1 = new GridBagConstraints();
+
+        setFont(new Font("Helvetica", Font.PLAIN, 14));
+        c.setLayout(new BorderLayout());
+
+        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+        panel1 = new JPanel();
+        panel1.setLayout(gridbag1);
+
+        panel1.setBorder(new javax.swing.border.TitledBorder("Requirement"));
+
+        //panel1.setPreferredSize(new Dimension(500, 250));
+
+        // first line panel1
+        c1.weighty = 1.0;
+        c1.weightx = 1.0;
+        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+        c1.gridheight = 1;
+        c1.fill = GridBagConstraints.HORIZONTAL;
+        c1.anchor = GridBagConstraints.CENTER;
+        panel1.add(new JLabel(" "), c1);
+
+        // Combo box
+        listStereotypes = new JComboBox<String>(availableStereotypes);
+        listStereotypes.setSelectedIndex(currentStereotype);
+        panel1.add(listStereotypes, c1);
+
+
+        // List of stereotypes
+        c1.gridwidth = GridBagConstraints.REMAINDER; //end row
+        selectStereotype = new JButton("Select stereotype");
+        panel1.add(selectStereotype, c1);
+        selectStereotype.setEnabled(availableStereotypes.length > 0);
+        selectStereotype.addActionListener(this);
+
+        // Text of stereotype
+        stereotype = new JTextField(availableStereotypes[currentStereotype], 30);
+        c1.gridwidth = 1;
+        panel1.add(stereotype, c1);
+        colorButton = new JButton();
+        colorButton.setBackground(colors[currentStereotype]);
+        colorButton.addActionListener(this);
+        c1.gridwidth = GridBagConstraints.REMAINDER;
+        c1.fill = GridBagConstraints.BOTH;
+        panel1.add(colorButton, c1);
+
+        useDefaultColor = new JButton("Use default color");
+        useDefaultColor.setBackground(defaultColor);
+        useDefaultColor.addActionListener(this);
+        panel1.add(useDefaultColor, c1);
+        //panel1.setEditable(true);
+
+        // ID
+        c1.fill = GridBagConstraints.HORIZONTAL;
+        name = new JTextField(currentName, 30);
+        panel1.add(name, c1);
+        //panel1.setEditable(true);
+
+
+        c.add(panel1, BorderLayout.CENTER);
+
+        JPanel buttons = initBasicButtons(this);
+        c.add(buttons, BorderLayout.SOUTH);
+    }
+
+    public void	actionPerformed(ActionEvent evt)  {
+        //String command = evt.getActionCommand();
+
+        // Compare the action command to the known actions.
+        if (evt.getSource() == closeButton)  {
+            closeDialog();
+        } else if (evt.getSource() == cancelButton)  {
+            cancelDialog();
+        } else if (evt.getSource() == selectStereotype)  {
+            selectStereotype();
+        } else if (evt.getSource() == colorButton)  {
+            selectColor();
+        } else if (evt.getSource() == useDefaultColor)  {
+            selectDefaultColor();
+        }
+    }
+
+    public void selectColor() {
+        Color newColor = JColorChooser.showDialog
+                (null, "Background color of top box", colorButton.getBackground());
+        colorButton.setBackground(newColor);
+    }
+
+    public void selectDefaultColor() {
+        colorButton.setBackground(defaultColor);
+    }
+
+    public void selectStereotype() {
+        int index = listStereotypes.getSelectedIndex();
+        stereotype.setText(availableStereotypes[index]);
+        colorButton.setBackground(colors[index]);
+    }
+
+    public void closeDialog() {
+        cancelled = false;
+        dispose();
+    }
+
+    public String getStereotype() {
+        return stereotype.getText();
+    }
+
+    public int getColor() {
+        return colorButton.getBackground().getRGB();
+    }
+
+    public String getName() {
+        return name.getText();
+    }
+
+
+    public boolean hasValidString() {
+        return stereotype.getText().length() > 0;
+    }
+
+    public boolean hasBeenCancelled() {
+        return cancelled;
+    }
+
+    public void cancelDialog() {
+        cancelled = true;
+        dispose();
+    }
+}
diff --git a/src/main/java/ui/window/JDialogJavaGeneration.java b/src/main/java/ui/window/JDialogJavaGeneration.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogJavaSimulation.java b/src/main/java/ui/window/JDialogJavaSimulation.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogLOTOSAnalysis.java b/src/main/java/ui/window/JDialogLOTOSAnalysis.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogLOTOSValidation.java b/src/main/java/ui/window/JDialogLOTOSValidation.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogLinkNCNode.java b/src/main/java/ui/window/JDialogLinkNCNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogLinkNode.java b/src/main/java/ui/window/JDialogLinkNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogManageListOfString.java b/src/main/java/ui/window/JDialogManageListOfString.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogMemoryNode.java b/src/main/java/ui/window/JDialogMemoryNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogModelChecking.java b/src/main/java/ui/window/JDialogModelChecking.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogMultiString.java b/src/main/java/ui/window/JDialogMultiString.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogMultiStringAndTabs.java b/src/main/java/ui/window/JDialogMultiStringAndTabs.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogMultiStringCP.java b/src/main/java/ui/window/JDialogMultiStringCP.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogNCEqNode.java b/src/main/java/ui/window/JDialogNCEqNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogNCRoute.java b/src/main/java/ui/window/JDialogNCRoute.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogNCSwitchNode.java b/src/main/java/ui/window/JDialogNCSwitchNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogNCTraffic.java b/src/main/java/ui/window/JDialogNCTraffic.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogNote.java b/src/main/java/ui/window/JDialogNote.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogObserver.java b/src/main/java/ui/window/JDialogObserver.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogParam.java b/src/main/java/ui/window/JDialogParam.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogParamFIFO.java b/src/main/java/ui/window/JDialogParamFIFO.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogPragma.java b/src/main/java/ui/window/JDialogPragma.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogProjection.java b/src/main/java/ui/window/JDialogProjection.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogProverifVerification.java b/src/main/java/ui/window/JDialogProverifVerification.java
index 077b43ce7e25dede1bcaaea42c2d91c6daaa7e7c..2ea0ef7164a7881bc9cc2b5c1e7fc4a7725dc985 100644
--- a/src/main/java/ui/window/JDialogProverifVerification.java
+++ b/src/main/java/ui/window/JDialogProverifVerification.java
@@ -178,10 +178,11 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
     //security generation buttons
     ButtonGroup secGroup;
 
-    protected JCheckBox autoConf, autoWeakAuth, autoStrongAuth, custom;
-	protected JRadioButton autoSec, autoMapKeys, addHSM;
+    protected JCheckBox autoConf, autoWeakAuth, autoStrongAuth, custom, addHSM;
+	protected JRadioButton autoSec, autoMapKeys;
     protected JTextField encTime, decTime, secOverhead;
     protected JComboBox<String> addtoCPU;
+	protected JButton allValidated, addOneValidated, allIgnored, addOneIgnored;
 
     protected JCheckBox removeForkAndJoin;
 
@@ -347,19 +348,17 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
         jp02.add(autoStrongAuth, c01);
 
 		autoStrongAuth.addActionListener(this);
-        autoMapKeys= new JRadioButton("Add Keys");
-		autoMapKeys.addActionListener(this);
-        jp02.add(autoMapKeys, c01);
-		secGroup.add(autoMapKeys);
-        addHSM = new JRadioButton("Add HSM");
-        jp02.add(addHSM,c01);
-		addHSM.addActionListener(this);
-		secGroup.add(addHSM);
-		jp02.add(new JLabel("Add HSM to component:"),c01);
+		
+		addHSM = new JCheckBox("Add HSM to component:");
+		addHSM.setEnabled(false);
+		jp02.add(addHSM, c01);
+		
+		
 		listIgnored = new JList<String>(ignoredTasks);
 
 
 		listPanel = new JPanel();
+		listPanel.setPreferredSize(new Dimension(250, 200));
 		GridBagConstraints c02 = new GridBagConstraints();
 		c02.gridwidth=1;
 		c02.gridheight=1;
@@ -375,27 +374,36 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
         GridBagConstraints c13 = new GridBagConstraints();
         c13.gridwidth = GridBagConstraints.REMAINDER;
         c13.gridheight = 1;
-        JButton allValidated = new JButton(IconManager.imgic50);
+        
+        allValidated = new JButton(IconManager.imgic50);
         allValidated.setPreferredSize(new Dimension(50, 25));
         allValidated.addActionListener(this);
         allValidated.setActionCommand("allValidated");
         buttonPanel.add(allValidated, c13);
 
-        JButton addOneValidated = new JButton(IconManager.imgic48);
+		allValidated.setEnabled(false);
+		
+
+        addOneValidated = new JButton(IconManager.imgic48);
         addOneValidated.setPreferredSize(new Dimension(50, 25));
         addOneValidated.addActionListener(this);
         addOneValidated.setActionCommand("addOneValidated");
         buttonPanel.add(addOneValidated, c13);
 
+
+		addOneValidated.setEnabled(false);
+
         buttonPanel.add(new JLabel(" "), c13);
 
-        JButton addOneIgnored = new JButton(IconManager.imgic46);
+        addOneIgnored = new JButton(IconManager.imgic46);
         addOneIgnored.addActionListener(this);
         addOneIgnored.setPreferredSize(new Dimension(50, 25));
         addOneIgnored.setActionCommand("addOneIgnored");
         buttonPanel.add(addOneIgnored, c13);
 
-        JButton allIgnored = new JButton(IconManager.imgic44);
+		addOneIgnored.setEnabled(false);
+
+        allIgnored = new JButton(IconManager.imgic44);
         allIgnored.addActionListener(this);
         allIgnored.setPreferredSize(new Dimension(50, 25));
         allIgnored.setActionCommand("allIgnored");
@@ -403,6 +411,8 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
         listPanel.add(buttonPanel, c02);
         buttonPanel.setPreferredSize(new Dimension(50, 200));
 
+		allIgnored.setEnabled(false);
+		
         listSelected = new JList<String>(selectedTasks);
 
         //listValidated.setPreferredSize(new Dimension(200, 250));
@@ -417,6 +427,31 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
         jp02.add(listPanel, c01);
         c02.gridheight = 1;
 		
+		custom = new JCheckBox("Custom performance attributes");
+        jp02.add(custom, c01);
+        custom.addActionListener(this);
+
+        jp02.add(new JLabel("Encryption Computational Complexity"), c01);
+        encTime = new JTextField(encCC);
+        encTime.setEnabled(false);
+        jp02.add(encTime, c01);
+
+        jp02.add(new JLabel("Decryption Computational Complexity"), c01);
+        decTime = new JTextField(decCC);
+        decTime.setEnabled(false);
+        jp02.add(decTime, c01);
+
+        jp02.add(new JLabel("Data Overhead (bits)"), c01);
+        secOverhead = new JTextField(secOv);
+        secOverhead.setEnabled(false);
+        jp02.add(secOverhead, c01);
+		
+		
+        autoMapKeys= new JRadioButton("Add Keys Only");
+		autoMapKeys.addActionListener(this);
+        jp02.add(autoMapKeys, c01);
+		secGroup.add(autoMapKeys);
+
 		
 /*
 		for (String cpuName: cpuTaskMap.keySet()){
@@ -442,30 +477,13 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
         //     addToComp = new JTextField(compName);
         //jp01.add(addToComp,c01);
 
-        removeForkAndJoin = new JCheckBox("Remove fork and join operators");
+   /*     removeForkAndJoin = new JCheckBox("Remove fork and join operators");
         if (mgui.isExperimentalOn()) {
             //jp02.add(removeForkAndJoin, c01);
             //removeForkAndJoin.addActionListener(this);
-        }
+        }*/
 
-        custom = new JCheckBox("Custom performance attributes");
-        jp02.add(custom, c01);
-        custom.addActionListener(this);
-
-        jp02.add(new JLabel("Encryption Computational Complexity"), c01);
-        encTime = new JTextField(encCC);
-        encTime.setEnabled(false);
-        jp02.add(encTime, c01);
-
-        jp02.add(new JLabel("Decryption Computational Complexity"), c01);
-        decTime = new JTextField(decCC);
-        decTime.setEnabled(false);
-        jp02.add(decTime, c01);
-
-        jp02.add(new JLabel("Data Overhead (bits)"), c01);
-        secOverhead = new JTextField(secOv);
-        secOverhead.setEnabled(false);
-        jp02.add(secOverhead, c01);
+       
 
 
         JPanel jp01 = new JPanel();
@@ -715,14 +733,17 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
                 } else if (command.equals("allIgnored")) {
                     allIgnored();
                 }
-                if (evt.getSource() == addHSM) {
-                    listPanel.setEnabled(addHSM.isSelected());
-                }
-                if (evt.getSource() == autoConf || evt.getSource() == autoSec || evt.getSource() == autoMapKeys || evt.getSource() == addHSM || evt.getSource() == autoWeakAuth) {
+                if (evt.getSource() == autoConf || evt.getSource() == autoSec || evt.getSource() == autoMapKeys || evt.getSource() == autoWeakAuth) {
                     //autoWeakAuth.setEnabled(autoConf.isSelected());
                     autoConf.setEnabled(autoSec.isSelected());
+                    addHSM.setEnabled(autoSec.isSelected());
+                    addOneValidated.setEnabled(autoSec.isSelected());
+                    allValidated.setEnabled(autoSec.isSelected());
+                    addOneIgnored.setEnabled(autoSec.isSelected());
+                    allIgnored.setEnabled(autoSec.isSelected());
                     autoWeakAuth.setEnabled(autoSec.isSelected());
                     autoStrongAuth.setEnabled(autoWeakAuth.isSelected());
+                    
                     if (!autoSec.isSelected()) {
                         autoConf.setSelected(false);
                         autoWeakAuth.setSelected(false);
@@ -788,50 +809,38 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
     public void run() {
         TraceManager.addDev("Thread started");
         File testFile;
+        Map<String, java.util.List<String>> selectedCpuTasks = new HashMap<String, java.util.List<String>>();
         try {
             if (jp1.getSelectedIndex() == 1) {
-                encCC = encTime.getText();
-                decCC = decTime.getText();
-                secOv = secOverhead.getText();
-                TMLMapping map;
-                if (autoConf.isSelected() || autoWeakAuth.isSelected() || autoStrongAuth.isSelected()) {
-                    if (custom.isSelected()) {
-                        map = mgui.gtm.autoSecure(mgui, encCC, secOv, decCC, autoConf.isSelected(), autoWeakAuth.isSelected(), autoStrongAuth
-                                .isSelected());
-                    } else {
-                        map = mgui.gtm.autoSecure(mgui, autoConf.isSelected(), autoWeakAuth.isSelected(), autoStrongAuth.isSelected());
-                    }
-                } else if (addHSM.isSelected()) {
-
-                    //	ArrayList<String> comps = new ArrayList<String>();
-                    //	comps.add(addToComp.getText());
-                    Map<String, java.util.List<String>> selectedCpuTasks = new HashMap<String, java.util.List<String>>();
-
-                    for (String task : selectedTasks) {
-                        String cpu = taskCpuMap.get(task);
-                        if (selectedCpuTasks.containsKey(cpu)) {
-                            selectedCpuTasks.get(cpu).add(task);
-                        } else {
-                            ArrayList<String> tasks = new ArrayList<String>();
-                            tasks.add(task);
-                            selectedCpuTasks.put(cpu, tasks);
-                        }
-                    }
-				/*for (JCheckBox cpu: cpuTaskObjs.keySet()){
-					ArrayList<String> tasks = new ArrayList<String>();	
-					for (JCheckBox task: cpuTaskObjs.get(cpu)){
-						if (task.isSelected()){
-							tasks.add(task.getText());
-						}
-					}
-					if (tasks.size()>0){
-						selectedCpuTasks.put(cpu.getText(), tasks);
-					}
-				}
-				mgui.gtm.addHSM(mgui, selectedCpuTasks);*/
-                    mgui.gtm.addHSM(mgui, selectedCpuTasks);
-                }
-                if (autoMapKeys.isSelected()) {
+            	if (autoSec.isSelected()){
+	                encCC = encTime.getText();
+	                decCC = decTime.getText();
+	                secOv = secOverhead.getText();
+	                TMLMapping map;
+	                if (addHSM.isSelected() && selectedTasks.size()>0) {
+	                	
+
+                    	for (String task : selectedTasks) {
+                        	String cpu = taskCpuMap.get(task);
+                        	if (selectedCpuTasks.containsKey(cpu)) {
+                            	selectedCpuTasks.get(cpu).add(task);
+                        	} else {
+                            	ArrayList<String> tasks = new ArrayList<String>();
+                            	tasks.add(task);
+                            	selectedCpuTasks.put(cpu, tasks);
+                        	}
+                    	}
+                    	//mgui.gtm.addHSM(mgui, selectedCpuTasks);
+	                }
+		            if (autoConf.isSelected() || autoWeakAuth.isSelected() || autoStrongAuth.isSelected()) {
+                    	if (custom.isSelected()) {
+                    	    map = mgui.gtm.autoSecure(mgui, encCC, secOv, decCC, autoConf.isSelected(), autoWeakAuth.isSelected(), autoStrongAuth.isSelected(), selectedCpuTasks);
+                    	} else {
+                        	map = mgui.gtm.autoSecure(mgui, "100", "0", "100", autoConf.isSelected(), autoWeakAuth.isSelected(), autoStrongAuth.isSelected(), selectedCpuTasks);
+                    	}
+                	}
+                } 
+                else if (autoMapKeys.isSelected()) {
                     mgui.gtm.autoMapKeys();
                 }
                 mode = NOT_STARTED;
@@ -840,11 +849,6 @@ public class JDialogProverifVerification extends JDialog implements ActionListen
                 testGo();
                 pathCode = code1.getText().trim();
 
-                // Issue #131: Not needed. Would duplicate file name
-//                if (pathCode.isEmpty()) {
-//                    pathCode += "pvspec";
-//                }
-
                 SpecConfigTTool.checkAndCreateProverifDir(pathCode);
 
                 pathCode += "pvspec";
diff --git a/src/main/java/ui/window/JDialogReducedAttribute.java b/src/main/java/ui/window/JDialogReducedAttribute.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogRequirement.java b/src/main/java/ui/window/JDialogRequirement.java
old mode 100755
new mode 100644
index d9dc61a6c53cfeeb985151d8704b7478eec9df85..e07cd02f7ed12ea59bcfca4ce560499eac15fc68
--- a/src/main/java/ui/window/JDialogRequirement.java
+++ b/src/main/java/ui/window/JDialogRequirement.java
@@ -47,6 +47,8 @@ import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.LinkedList;
 
 //import javax.swing.event.*;
 //import java.util.*;
@@ -74,6 +76,10 @@ public class JDialogRequirement extends JDialogBase implements ActionListener  {
     private String text;
 	private String id;
     private int type;
+
+    protected ArrayList<String> extraParamIDs, extraParamValues;
+    protected JTextArea jtaAttributes;
+    //protected ArrayList<JTextField> extraParamTextFieldIDs, extraParamTextFieldValues;
     
     // Panel1
     protected JTextArea jta;
@@ -85,7 +91,8 @@ public class JDialogRequirement extends JDialogBase implements ActionListener  {
     private JTextField idBox, violatedActionBox, attackTreeNodeBox, referenceElementsBox;
     
     /** Creates new form  */
-    public JDialogRequirement(Frame _frame, String _title, String _id, String _text, String _kind, String _criticality, String _violatedAction, int _type, String _attackTreeNode, String _referenceElements) {
+    public JDialogRequirement(Frame _frame, String _title, String _id, String _text, String _kind, String _criticality, String _violatedAction, int
+            _type, String _attackTreeNode, String _referenceElements, ArrayList<String> _extraParamIDs, ArrayList<String> _extraParamValues) {
         super(_frame, _title, true);
         frame = _frame;
 		id = _id;
@@ -96,6 +103,11 @@ public class JDialogRequirement extends JDialogBase implements ActionListener  {
         type = _type;
 		attackTreeNode = _attackTreeNode;
 		referenceElements = _referenceElements;
+
+		extraParamIDs = _extraParamIDs;
+		extraParamValues = _extraParamValues;
+        //extraParamTextFieldIDs = new ArrayList<JTextField>();
+        //extraParamTextFieldValues = new ArrayList<JTextField>();
         
         initComponents();
         myInitComponents();
@@ -164,11 +176,26 @@ public class JDialogRequirement extends JDialogBase implements ActionListener  {
         jta.setTabSize(3);
         jta.append(text);
         jta.setFont(new Font("times", Font.PLAIN, 12));
-       
+
+
         JScrollPane jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
         //jsp.setPreferredSize(new Dimension(300, 200));
         panel1.add(jsp, c1);
         //}
+
+        panel1.add(new JLabel("Extra attributes. ID:Value (in one line)"), c1);
+        jtaAttributes = new JTextArea();
+        jtaAttributes.setEditable(true);
+        jtaAttributes.setMargin(new Insets(10, 10, 10, 10));
+        jtaAttributes.setTabSize(3);
+        for(int k=0; k<extraParamIDs.size(); k++) {
+            jtaAttributes.append(extraParamIDs.get(k)+ ": " + extraParamValues.get(k));
+        }
+        jtaAttributes.setFont(new Font("times", Font.PLAIN, 12));
+
+        jsp = new JScrollPane(jtaAttributes, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+        //jsp.setPreferredSize(new Dimension(300, 200));
+        panel1.add(jsp, c1);
         
         // Panel2
         c2.gridwidth = 1;
@@ -356,5 +383,9 @@ public class JDialogRequirement extends JDialogBase implements ActionListener  {
     public String getReferenceElements() {
         return referenceElementsBox.getText();
     }
+
+    public String getExtraAttributes() {
+        return jtaAttributes.getText();
+    }
     
 }
diff --git a/src/main/java/ui/window/JDialogRequirementTable.java b/src/main/java/ui/window/JDialogRequirementTable.java
old mode 100755
new mode 100644
index feff78d5021e4e8c0a5a36997564d757ba5c8c28..b200b74da7d2d99210371896655e9ffed491599b
--- a/src/main/java/ui/window/JDialogRequirementTable.java
+++ b/src/main/java/ui/window/JDialogRequirementTable.java
@@ -59,12 +59,23 @@ import java.util.ArrayList;
  */
 public class JDialogRequirementTable extends JDialogBase implements ActionListener {
 
-    static String[] items = {"none", "ID", "Name", "Type", "Description", "Kind", "Criticality", "Violated action", "Targetted attacks", "Satisfied", "Reference elements"};
+    // Direct sons / fathers
+    // All sons / fathers
+    // Property verifiying the req
+    // Elements satisfying the req.
+
+    static String[] items = {"none", "ID", "Stereotype", "Name",
+            "Description", "Kind", "Criticality", "Violated action", "Targeted " +
+            "attacks", "Satisfied", "Reference elements", "Custom attributes",
+            "Verification Properties", "Satisfied by", "Immediate sons",
+            "All sons", "Immediate fathers", "All fathers", "Me -> refine -> Other",
+            "Other -> refine -> Me", "Me -> derive -> Other", "Other -> derive -> Me"};
+
     private static String[] sizes = {"0", "50", "100", "150", "200", "250", "300", "350", "400", "450", "500"};
    
-	private int nbColumn = 10;
-    private static int[] selectedItems = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
-	private static int[] selectedSizes = {1, 3, 2, 6, 2, 2, 2, 2, 1, 2};
+	private int nbColumn = 21;
+    private static int[] selectedItems = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21};
+	private static int[] selectedSizes = {1, 3, 2, 6, 2, 2, 2, 2, 1, 5,  5,  5,  5,  6,  6,   6, 6,   6,  6,  6,  6};
 	
     // Panel1
     private ArrayList<JComboBox<String>> itemBoxes, sizeBoxes;
@@ -102,7 +113,7 @@ public class JDialogRequirementTable extends JDialogBase implements ActionListen
         JPanel panel1 = new JPanel();
         panel1.setLayout(gridbag1);
         panel1.setBorder(new javax.swing.border.TitledBorder("Setting columns parameters "));
-        panel1.setPreferredSize(new Dimension(500, 300));
+        panel1.setPreferredSize(new Dimension(500, 500));
         
         // first line panel1
         //c1.gridwidth = 1;
@@ -142,17 +153,18 @@ public class JDialogRequirementTable extends JDialogBase implements ActionListen
         
         c0.gridheight = 1;
         c0.fill = GridBagConstraints.HORIZONTAL;
-        
+
+
         initButtons(c0, c, this);
+        renameSaveButton("Show table");
     }
     
     public void	actionPerformed(ActionEvent evt)  {
-        String command = evt.getActionCommand();
         
         // Compare the action command to the known actions.
-        if (command.equals("Save and Close"))  {
+        if (evt.getSource() == closeButton)  {
             closeDialog();
-        } else if (command.equals("Cancel")) {
+        } else if (evt.getSource() == cancelButton) {
             cancelDialog();
         }
     }
diff --git a/src/main/java/ui/window/JDialogScheduling.java b/src/main/java/ui/window/JDialogScheduling.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSelectAvatarBlock.java b/src/main/java/ui/window/JDialogSelectAvatarBlock.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSelectCPDiagrams.java b/src/main/java/ui/window/JDialogSelectCPDiagrams.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSelectRequirements.java b/src/main/java/ui/window/JDialogSelectRequirements.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSelectTMLComponent.java b/src/main/java/ui/window/JDialogSelectTMLComponent.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSelectTMLNodes.java b/src/main/java/ui/window/JDialogSelectTMLNodes.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSelectTMLTask.java b/src/main/java/ui/window/JDialogSelectTMLTask.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSimulation.java b/src/main/java/ui/window/JDialogSimulation.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSynchro.java b/src/main/java/ui/window/JDialogSynchro.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogSysCAMSBlockDE.java b/src/main/java/ui/window/JDialogSysCAMSBlockDE.java
index 74eb4a5d94d7c24f02cde19dfc64e834bf30a326..41b98451ad50e6eca932b4eb3035c8710cbaf827 100644
--- a/src/main/java/ui/window/JDialogSysCAMSBlockDE.java
+++ b/src/main/java/ui/window/JDialogSysCAMSBlockDE.java
@@ -114,16 +114,14 @@ public class JDialogSysCAMSBlockDE extends JDialog implements ActionListener {
 
 		/** JTabbedPane **/
 		JPanel attributesMainPanel = new JPanel();
-		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); // add tab to main panel
+		mainPanel.add(attributesMainPanel, BorderLayout.NORTH); 
 
-		// --- Attributes GridLayout ---//
+		// --- Attributes ---//
 		attributesMainPanel.setLayout(new BorderLayout());
 
-		// Box for Attributes
 		Box attributesBox = Box.createVerticalBox();
 		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting DE block attributes"));
 
-		// BorderLayout for Adding Attributes
 		GridBagLayout gridBag = new GridBagLayout();
 		GridBagConstraints constraints = new GridBagConstraints();
 		JPanel attributesBoxPanel = new JPanel();
@@ -132,33 +130,33 @@ public class JDialogSysCAMSBlockDE extends JDialog implements ActionListener {
 
 		JLabel labelName = new JLabel("Name : ");
 		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(labelName, constraints);
 		attributesBoxPanel.add(labelName);
 
-		if (block.getValue().toString().equals("")) { // name empty
+		if (block.getValue().toString().equals("")) {
 			nameTextField = new JTextField(10);
 		} else {
-			nameTextField = new JTextField(block.getValue().toString(), 10); // name not empty
+			nameTextField = new JTextField(block.getValue().toString(), 10); 
 		}
 		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(nameTextField, constraints);
 		attributesBoxPanel.add(nameTextField);
 
 		JLabel periodLabel = new JLabel("Period Tp : ");
 		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(periodLabel, constraints);
 		attributesBoxPanel.add(periodLabel);
 
-		if (block.getPeriod() == -1) { // name empty // port.getName().toString().equals("") ||
+		if (block.getPeriod() == -1) { 
 			periodTextField = new JTextField(10);
 		} else {
-			periodTextField = new JTextField("" + block.getPeriod(), 10); // name not empty
+			periodTextField = new JTextField("" + block.getPeriod(), 10);
 		}
 		constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(periodTextField, constraints);
 		attributesBoxPanel.add(periodTextField);
 
@@ -171,21 +169,20 @@ public class JDialogSysCAMSBlockDE extends JDialog implements ActionListener {
 			periodComboBoxString.setSelectedIndex(0);
 		} else if (block.getTime().equals("ms")) {
 			periodComboBoxString.setSelectedIndex(1);
-		} else {
+		} else if (block.getTime().equals("s")) {
 			periodComboBoxString.setSelectedIndex(2);
 		}
 		periodComboBoxString.setActionCommand("time");
 		periodComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(periodComboBoxString, constraints);
 		attributesBoxPanel.add(periodComboBoxString);
 
 		attributesBox.add(attributesBoxPanel);
 
-		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); // add box to grid
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
 
-		// Down Side
 		JPanel downPanel = new JPanel(new FlowLayout());
 
 		JButton saveCloseButton = new JButton("Save and close");
@@ -226,9 +223,11 @@ public class JDialogSysCAMSBlockDE extends JDialog implements ActionListener {
 				}
 				if (periodValueInteger == false) {
 					block.setPeriod(Integer.parseInt(periodTextField.getText()));
+					block.setTime((String) periodComboBoxString.getSelectedItem());
 				}
 			} else {
 				block.setPeriod(-1);
+				block.setTime("");
 			}
 
 			this.dispose();
@@ -238,5 +237,4 @@ public class JDialogSysCAMSBlockDE extends JDialog implements ActionListener {
 			this.dispose();
 		}
 	}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java b/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java
index 6be075177a2f9d9edb3b4045bcf6c02a83dfb9e3..d9ac0277283fd854e98c515a2d1450baf4eb1c54 100644
--- a/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java
+++ b/src/main/java/ui/window/JDialogSysCAMSBlockTDF.java
@@ -39,51 +39,61 @@
 package ui.window;
 
 import ui.syscams.*;
-import ui.util.IconManager;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.AbstractAction;
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTabbedPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
-import javax.swing.KeyStroke;
+import ui.util.*;
+import java.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.event.*;
+import javax.swing.border.*;
+
+import org.apache.derby.tools.sysinfo;
 
 /**
- * Class JDialogSystemCAMSBlockTDF Dialog for managing of SystemC-AMS TDF Block
+ * Class JDialogSystemCAMSBlockTDF 
+ * Dialog for managing of SystemC-AMS TDF Block
  * Creation: 26/04/2018
- * 
  * @version 1.0 26/04/2018
  * @author Irina Kit Yan LEE
  */
 
 @SuppressWarnings("serial")
 
-public class JDialogSysCAMSBlockTDF extends JDialog implements ActionListener {
+public class JDialogSysCAMSBlockTDF extends JDialog implements ActionListener, ListSelectionListener {
 
 	/** Access to ActionPerformed **/
 	private JTextField nameTextField;
 	private JTextField periodTextField;
 	private String listPeriodString[];
 	private JComboBox<String> periodComboBoxString;
+
+	private JTextField nameStructTextField;
+	private JTextField valueStructTextField;
+	private JRadioButton constantStructRadioButton;
+	private String listTypeStructString[];
+	private JComboBox<String> typeStructComboBoxString;
+	private ArrayList<String> listTmpStruct;
+	private JList<String> structList;
+	private DefaultListModel<String> structListModel;
+	private boolean structBool = false;
+	private int structSelectedIndex;
+
+	private JTextField nameTemplateTextField;
+	private String listTypeTemplateString[];
+	private JComboBox<String> typeTemplateComboBoxString;
+
+	private JTextField nameTypedefTextField;
+	private String listTypeTypedefString[];
+	private JComboBox<String> typeTypedefComboBoxString;
+	private JButton addModifyTypedefButton;
+	private ArrayList<String> listTmpTypedef;
+	private JList<String> typedefList;
+	private DefaultListModel<String> typedefListModel;
+	private boolean typedefBool = false;
+	private int typedefSelectedIndex;
+
+	private JButton upButton, downButton, removeButton;
+
 	private JTextArea processCodeTextArea;
 	private String finalString;
 
@@ -191,20 +201,20 @@ public class JDialogSysCAMSBlockTDF extends JDialog implements ActionListener {
 		/** JTabbedPane **/
 		JTabbedPane tabbedPane = new JTabbedPane();
 		JPanel attributesMainPanel = new JPanel();
+		JPanel parametersMainPanel = new JPanel();
 		JPanel processMainPanel = new JPanel();
 		tabbedPane.add("Attributes", attributesMainPanel);
+		tabbedPane.add("Parameters", parametersMainPanel);
 		tabbedPane.add("Process Code", processMainPanel);
 
-		mainPanel.add(tabbedPane, BorderLayout.NORTH); // add tab to main panel
+		mainPanel.add(tabbedPane, BorderLayout.NORTH); 
 
-		// --- Attributes GridLayout ---//
+		// --- Attributes ---//
 		attributesMainPanel.setLayout(new BorderLayout());
 
-		// Box for Attributes
 		Box attributesBox = Box.createVerticalBox();
 		attributesBox.setBorder(BorderFactory.createTitledBorder("Setting TDF block attributes"));
 
-		// BorderLayout for Adding Attributes
 		GridBagLayout gridBag = new GridBagLayout();
 		GridBagConstraints constraints = new GridBagConstraints();
 		JPanel attributesBoxPanel = new JPanel();
@@ -213,33 +223,33 @@ public class JDialogSysCAMSBlockTDF extends JDialog implements ActionListener {
 
 		JLabel labelName = new JLabel("Name : ");
 		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(labelName, constraints);
 		attributesBoxPanel.add(labelName);
 
-		if (block.getValue().toString().equals("")) { // name empty
+		if (block.getValue().toString().equals("")) { 
 			nameTextField = new JTextField(10);
 		} else {
-			nameTextField = new JTextField(block.getValue().toString(), 10); // name not empty
+			nameTextField = new JTextField(block.getValue().toString(), 10);
 		}
 		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(nameTextField, constraints);
 		attributesBoxPanel.add(nameTextField);
 
 		JLabel periodLabel = new JLabel("Period Tp : ");
 		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(periodLabel, constraints);
 		attributesBoxPanel.add(periodLabel);
 
-		if (block.getPeriod() == -1) { // name empty // port.getName().toString().equals("") ||
+		if (block.getPeriod() == -1) { 
 			periodTextField = new JTextField(10);
 		} else {
-			periodTextField = new JTextField("" + block.getPeriod(), 10); // name not empty
+			periodTextField = new JTextField("" + block.getPeriod(), 10); 
 		}
 		constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(periodTextField, constraints);
 		attributesBoxPanel.add(periodTextField);
 
@@ -252,50 +262,340 @@ public class JDialogSysCAMSBlockTDF extends JDialog implements ActionListener {
 			periodComboBoxString.setSelectedIndex(0);
 		} else if (block.getTime().equals("ms")) {
 			periodComboBoxString.setSelectedIndex(1);
-		} else {
+		} else if (block.getTime().equals("s")) {
 			periodComboBoxString.setSelectedIndex(2);
 		}
-		periodComboBoxString.setActionCommand("time");
 		periodComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH,
-				new Insets(5, 10, 5, 10), 0, 0);
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(periodComboBoxString, constraints);
 		attributesBoxPanel.add(periodComboBoxString);
 
-		attributesBox.add(attributesBoxPanel); // add border to box
+		attributesBox.add(attributesBoxPanel); 
+		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); 
 
-		attributesMainPanel.add(attributesBox, BorderLayout.NORTH); // add box to grid
+		// --- Parameters ---//
+		parametersMainPanel.setLayout(new BorderLayout());
 
-		// Down Side
-		JPanel downPanel = new JPanel(new FlowLayout());
+		Box parametersBox = Box.createVerticalBox();
+		parametersBox.setBorder(BorderFactory.createTitledBorder("Setting TDF block parameters"));
 
-		JButton saveCloseButton = new JButton("Save and close");
-		saveCloseButton.setIcon(IconManager.imgic25);
-		saveCloseButton.setActionCommand("Save_Close");
-		saveCloseButton.addActionListener(this);
-		saveCloseButton.setPreferredSize(new Dimension(200, 30));
-		downPanel.add(saveCloseButton);
+		JPanel blockPanel = new JPanel(new GridLayout(3, 1));
 
-		JButton cancelButton = new JButton("Cancel");
-		cancelButton.setIcon(IconManager.imgic27);
-		cancelButton.setActionCommand("Cancel");
-		cancelButton.addActionListener(this);
-		cancelButton.setPreferredSize(new Dimension(200, 30));
-		downPanel.add(cancelButton);
+		// Struct
+		JPanel structPanel = new JPanel();
+		structPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		GridBagLayout gridBagParameter = new GridBagLayout();
+		GridBagConstraints constraintParameter = new GridBagConstraints();
+		structPanel.setLayout(gridBagParameter);
+		TitledBorder border = new TitledBorder("Struct :");
+		border.setTitleJustification(TitledBorder.CENTER);
+		border.setTitlePosition(TitledBorder.TOP);
+		structPanel.setBorder(border);
 
-		mainPanel.add(downPanel, BorderLayout.CENTER);
-		this.getRootPane().setDefaultButton(saveCloseButton);
+		JLabel nameParameterLabel = new JLabel("identifier");
+		constraintParameter = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(nameParameterLabel, constraintParameter);
+		structPanel.add(nameParameterLabel);
+
+		nameStructTextField = new JTextField();
+		constraintParameter = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(nameStructTextField, constraintParameter);
+		structPanel.add(nameStructTextField);
+
+		JLabel egalLabel = new JLabel("=");
+		constraintParameter = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(egalLabel, constraintParameter);
+		structPanel.add(egalLabel);
+
+		JLabel valueParameterLabel = new JLabel("value");
+		constraintParameter = new GridBagConstraints(2, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(valueParameterLabel, constraintParameter);
+		structPanel.add(valueParameterLabel);
+
+		valueStructTextField = new JTextField();
+		constraintParameter = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(valueStructTextField, constraintParameter);
+		structPanel.add(valueStructTextField);
+
+		JLabel pointsLabel = new JLabel(":");
+		constraintParameter = new GridBagConstraints(3, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(pointsLabel, constraintParameter);
+		structPanel.add(pointsLabel);
+
+		JLabel constantLabel = new JLabel("const");
+		constraintParameter = new GridBagConstraints(4, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(constantLabel, constraintParameter);
+		structPanel.add(constantLabel);
+
+		constantStructRadioButton = new JRadioButton();
+		constantStructRadioButton.setActionCommand("Const");
+		constantStructRadioButton.setSelected(false);
+		constantStructRadioButton.addActionListener(this);
+		constraintParameter = new GridBagConstraints(4, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(constantStructRadioButton, constraintParameter);
+		structPanel.add(constantStructRadioButton);
+
+		JLabel typeParameterLabel = new JLabel("type");
+		constraintParameter = new GridBagConstraints(5, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(typeParameterLabel, constraintParameter);
+		structPanel.add(typeParameterLabel);
+
+		listTypeStructString = new String[6];
+		listTypeStructString[0] = "bool";
+		listTypeStructString[1] = "double";
+		listTypeStructString[2] = "float";
+		listTypeStructString[3] = "int";
+		listTypeStructString[4] = "long";
+		listTypeStructString[5] = "short";
+		typeStructComboBoxString = new JComboBox<String>(listTypeStructString);
+		typeStructComboBoxString.setSelectedIndex(0);
+		typeStructComboBoxString.addActionListener(this);
+		constraintParameter = new GridBagConstraints(5, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(typeStructComboBoxString, constraintParameter);
+		structPanel.add(typeStructComboBoxString);
+
+		JButton addModifyButton = new JButton("Add / Modify parameter");
+		addModifyButton.setActionCommand("Add_Modify_Struct");
+		addModifyButton.addActionListener(this);
+		constraintParameter = new GridBagConstraints(0, 2, 6, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		gridBagParameter.setConstraints(addModifyButton, constraintParameter);
+		structPanel.add(addModifyButton);
 
-		// --- ProcessCode BorderLayout ---//
+		blockPanel.add(structPanel);
+
+		// Template
+		JPanel templatePanel = new JPanel();
+		templatePanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		GridBagLayout templateGridBag = new GridBagLayout();
+		GridBagConstraints templateConstraint = new GridBagConstraints();
+		templatePanel.setLayout(templateGridBag);
+		TitledBorder templateBorder = new TitledBorder("Template :");
+		templateBorder.setTitleJustification(TitledBorder.CENTER);
+		templateBorder.setTitlePosition(TitledBorder.TOP);
+		templatePanel.setBorder(templateBorder);
+
+		JLabel nameTemplateLabel = new JLabel("identifier");
+		templateConstraint = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		templateGridBag.setConstraints(nameTemplateLabel, templateConstraint);
+		templatePanel.add(nameTemplateLabel);
+
+		nameTemplateTextField = new JTextField(block.getNameTemplate());
+		templateConstraint = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		templateGridBag.setConstraints(nameTemplateTextField, templateConstraint);
+		templatePanel.add(nameTemplateTextField);
+
+		JLabel pointsTemplateLabel = new JLabel(":");
+		templateConstraint = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		templateGridBag.setConstraints(pointsTemplateLabel, templateConstraint);
+		templatePanel.add(pointsTemplateLabel);
+
+		JLabel typeTemplateLabel = new JLabel("type");
+		templateConstraint = new GridBagConstraints(2, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		templateGridBag.setConstraints(typeTemplateLabel, templateConstraint);
+		templatePanel.add(typeTemplateLabel);
+
+		listTypeTemplateString = new String[1];
+		listTypeTemplateString[0] = "int";
+		typeTemplateComboBoxString = new JComboBox<String>(listTypeTemplateString);
+		if (block.getTypeTemplate().equals("int") || block.getTypeTemplate().equals("")) {
+			typeTemplateComboBoxString.setSelectedIndex(0);
+		}
+		typeTemplateComboBoxString.addActionListener(this);
+		templateConstraint = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		templateGridBag.setConstraints(typeTemplateComboBoxString, templateConstraint);
+		templatePanel.add(typeTemplateComboBoxString);
+
+		JButton OKButton = new JButton("OK");
+		OKButton.setActionCommand("OK");
+		OKButton.addActionListener(this);
+		templateConstraint = new GridBagConstraints(0, 2, 3, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		templateGridBag.setConstraints(OKButton, templateConstraint);
+		templatePanel.add(OKButton);
+
+		blockPanel.add(templatePanel);
+
+		// Typedef
+		JPanel typedefPanel = new JPanel();
+		typedefPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		GridBagLayout typedefGridBag = new GridBagLayout();
+		GridBagConstraints typedefConstraint = new GridBagConstraints();
+		typedefPanel.setLayout(typedefGridBag);
+		TitledBorder typedefBorder = new TitledBorder("Typedef :");
+		typedefBorder.setTitleJustification(TitledBorder.CENTER);
+		typedefBorder.setTitlePosition(TitledBorder.TOP);
+		typedefPanel.setBorder(typedefBorder);
+
+		JLabel nameTypedefLabel = new JLabel("identifier");
+		typedefConstraint = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		typedefGridBag.setConstraints(nameTypedefLabel, typedefConstraint);
+		typedefPanel.add(nameTypedefLabel);
+
+		nameTypedefTextField = new JTextField();
+		if (block.getListTypedef().isEmpty()) {
+			nameTypedefTextField.setEditable(false);
+		} else {
+			nameTypedefTextField.setEditable(true);
+		}
+		typedefConstraint = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		typedefGridBag.setConstraints(nameTypedefTextField, typedefConstraint);
+		typedefPanel.add(nameTypedefTextField);
+
+		JLabel pointsTypedefLabel = new JLabel(":");
+		typedefConstraint = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		typedefGridBag.setConstraints(pointsTypedefLabel, typedefConstraint);
+		typedefPanel.add(pointsTypedefLabel);
+
+		JLabel typeTypedefLabel = new JLabel("type");
+		typedefConstraint = new GridBagConstraints(2, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		typedefGridBag.setConstraints(typeTypedefLabel, typedefConstraint);
+		typedefPanel.add(typeTypedefLabel);
+
+		listTypeTypedefString = new String[1];
+		listTypeTypedefString[0] = "sc_dt::sc_int";
+		typeTypedefComboBoxString = new JComboBox<String>(listTypeTypedefString);
+		typeTypedefComboBoxString.setSelectedIndex(0);
+		if (block.getListTypedef().isEmpty()) {
+			typeTypedefComboBoxString.setEnabled(false);
+		} else {
+			typeTypedefComboBoxString.setEnabled(true);
+		}
+		typeTypedefComboBoxString.addActionListener(this);
+		typedefConstraint = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		typedefGridBag.setConstraints(typeTypedefComboBoxString, typedefConstraint);
+		typedefPanel.add(typeTypedefComboBoxString);
+
+		addModifyTypedefButton = new JButton("Add / Modify typedef");
+		addModifyTypedefButton.setActionCommand("Add_Modify_Typedef");
+		addModifyTypedefButton.addActionListener(this);
+		if (block.getListTypedef().isEmpty()) {
+			addModifyTypedefButton.setEnabled(false);
+		} else {
+			addModifyTypedefButton.setEnabled(true);
+		}
+		typedefConstraint = new GridBagConstraints(0, 2, 3, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		typedefGridBag.setConstraints(addModifyTypedefButton, typedefConstraint);
+		typedefPanel.add(addModifyTypedefButton);
+
+		blockPanel.add(typedefPanel);
+
+		parametersBox.add(blockPanel); 
+		parametersMainPanel.add(parametersBox, BorderLayout.WEST); 
+
+		Box managingParametersBox = Box.createVerticalBox();
+
+		JPanel managingParameterBoxPanel = new JPanel(new GridLayout(3, 1));
+		managingParameterBoxPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+
+		JPanel listStructPanel = new JPanel();
+		TitledBorder listStructBorder = new TitledBorder("Managing struct :");
+		listStructBorder.setTitleJustification(TitledBorder.CENTER);
+		listStructBorder.setTitlePosition(TitledBorder.TOP);
+		listStructPanel.setBorder(listStructBorder);
+
+		structListModel = block.getListStruct();
+		structList = new JList<String>(structListModel);
+		structList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		structList.setLayoutOrientation(JList.VERTICAL);
+		structList.setSelectedIndex(-1);
+		structList.setVisibleRowCount(5);
+		structList.addListSelectionListener(this);
+		JScrollPane scrollPane = new JScrollPane(structList);
+		scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+		scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+		scrollPane.setPreferredSize(new Dimension(300, 100));
+		listStructPanel.add(scrollPane);
+		managingParameterBoxPanel.add(listStructPanel);
+
+		JPanel listTypedefPanel = new JPanel();
+		TitledBorder listTypedefBorder = new TitledBorder("Managing typedef :");
+		listTypedefBorder.setTitleJustification(TitledBorder.CENTER);
+		listTypedefBorder.setTitlePosition(TitledBorder.TOP);
+		listTypedefPanel.setBorder(listTypedefBorder);
+
+		typedefListModel = block.getListTypedef();
+		typedefList = new JList<String>(typedefListModel);
+		typedefList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+		typedefList.setLayoutOrientation(JList.VERTICAL);
+		typedefList.setSelectedIndex(-1);
+		typedefList.setVisibleRowCount(5);
+		typedefList.addListSelectionListener(this);
+		JScrollPane typedefScrollPane = new JScrollPane(typedefList);
+		typedefScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+		typedefScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+		typedefScrollPane.setPreferredSize(new Dimension(300, 100));
+		listTypedefPanel.add(typedefScrollPane);
+		managingParameterBoxPanel.add(listTypedefPanel);
+
+		GridBagLayout buttonGridBag = new GridBagLayout();
+		GridBagConstraints buttonconstraints = new GridBagConstraints();
+		JPanel buttonPanel = new JPanel();
+		buttonPanel.setFont(new Font("Helvetica", Font.PLAIN, 14));
+		buttonPanel.setLayout(buttonGridBag);
+
+		upButton = new JButton("Up");
+		upButton.setActionCommand("Up");
+		upButton.setEnabled(false);
+		upButton.addActionListener(this);
+		buttonconstraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		buttonGridBag.setConstraints(upButton, buttonconstraints);
+		buttonPanel.add(upButton);
+
+		downButton = new JButton("Down");
+		downButton.setActionCommand("Down");
+		downButton.setEnabled(false);
+		downButton.addActionListener(this);
+		buttonconstraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 5, 10), 0, 0);
+		buttonGridBag.setConstraints(downButton, buttonconstraints);
+		buttonPanel.add(downButton);
+
+		removeButton = new JButton("Remove parameter");
+		removeButton.setActionCommand("Remove");
+		removeButton.setEnabled(false);
+		removeButton.addActionListener(this);
+		buttonconstraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
+				new Insets(5, 10, 15, 10), 0, 0);
+		buttonGridBag.setConstraints(removeButton, buttonconstraints);
+		buttonPanel.add(removeButton);
+
+		managingParameterBoxPanel.add(buttonPanel);
+
+		managingParametersBox.add(managingParameterBoxPanel); 
+		parametersMainPanel.add(managingParametersBox, BorderLayout.EAST); 
+
+		// --- ProcessCode ---//
 		processMainPanel.setLayout(new BorderLayout());
 
 		Box codeBox = Box.createVerticalBox();
-		codeBox.setBorder(BorderFactory.createTitledBorder("Generating code"));
+		codeBox.setBorder(BorderFactory.createTitledBorder("Behavior function of TDF block"));
 
 		JPanel codeBoxPanel = new JPanel(new BorderLayout());
 
-		codeBoxPanel.add(new JLabel("Behavior function of TDF block : "), BorderLayout.NORTH);
-
 		StringBuffer stringbuf = encode(block.getProcessCode());
 		String beginString = stringbuf.toString();
 		finalString = beginString.replaceAll("\t}", "}");
@@ -311,21 +611,336 @@ public class JDialogSysCAMSBlockTDF extends JDialog implements ActionListener {
 		JScrollPane processScrollPane = new JScrollPane(processCodeTextArea);
 		processScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
 		processScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
-		processScrollPane.setPreferredSize(new Dimension(200, 150));
+		processScrollPane.setPreferredSize(new Dimension(200, 300));
+		processScrollPane.setBorder(new EmptyBorder(15, 10, 15, 10));
 
 		codeBoxPanel.add(processScrollPane, BorderLayout.SOUTH);
 
 		codeBox.add(codeBoxPanel);
 		processMainPanel.add(codeBox, BorderLayout.PAGE_START);
+
+		// --- Button --- //
+		JPanel downPanel = new JPanel(new FlowLayout());
+
+		JButton saveCloseButton = new JButton("Save and close");
+		saveCloseButton.setIcon(IconManager.imgic25);
+		saveCloseButton.setActionCommand("Save_Close");
+		saveCloseButton.addActionListener(this);
+		saveCloseButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(saveCloseButton);
+
+		JButton cancelButton = new JButton("Cancel");
+		cancelButton.setIcon(IconManager.imgic27);
+		cancelButton.setActionCommand("Cancel");
+		cancelButton.addActionListener(this);
+		cancelButton.setPreferredSize(new Dimension(200, 30));
+		downPanel.add(cancelButton);
+
+		mainPanel.add(downPanel, BorderLayout.CENTER);
+		this.getRootPane().setDefaultButton(saveCloseButton);
 		pack();
 	}
 
 	public void actionPerformed(ActionEvent e) {
+		if ("OK".equals(e.getActionCommand())) {
+			nameTypedefTextField.setEditable(true);
+			typeTypedefComboBoxString.setEnabled(true);
+			addModifyTypedefButton.setEnabled(true);
+		}
+
+		if ("Add_Modify_Struct".equals(e.getActionCommand())) {
+			listTmpStruct = new ArrayList<String>();
+			Boolean alreadyExist = false;
+			int alreadyExistId = -1;
+			String type = (String) typeStructComboBoxString.getSelectedItem();
+			String s = null;
+
+			Boolean valueBoolean = false, valueInteger = false, valueDouble = false, valueLong = false, nameEmpty = false;
+
+			if (nameStructTextField.getText().isEmpty()) {
+				JDialog msg = new JDialog(this);
+				msg.setLocationRelativeTo(null);
+				JOptionPane.showMessageDialog(msg, "The name of struct is empty", "Warning !",
+						JOptionPane.WARNING_MESSAGE);	
+				nameEmpty = true;
+			}
+
+			for (int i = 0; i < structListModel.getSize(); i++) {
+				if (nameStructTextField.getText().equals(structListModel.elementAt(i).split("\\s")[0])) {
+					alreadyExist = true;
+					alreadyExistId = i;
+				}
+			}
+
+			if (alreadyExist == false) {
+				try {
+					if (type.equals("bool")) {
+						Boolean.parseBoolean(valueStructTextField.getText());
+					} else if (type.equals("double")) {
+						Double.parseDouble(valueStructTextField.getText());
+					} else if (type.equals("float")) {
+						Float.parseFloat(valueStructTextField.getText());
+					} else if (type.equals("int")) {
+						Integer.parseInt(valueStructTextField.getText());
+					} else if (type.equals("long")) {
+						Long.parseLong(valueStructTextField.getText());
+					} else if (type.equals("short")) {
+						Short.parseShort(valueStructTextField.getText());
+					}
+				} catch (NumberFormatException e1) {
+					if (type.equals("bool")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Boolean", "Warning !",
+								JOptionPane.WARNING_MESSAGE);	
+						valueBoolean = true;
+					} else if (type.equals("double")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameteris not a Double", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueInteger = true;
+					} else if (type.equals("float")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameteris not a Float", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueInteger = true;
+					} else if (type.equals("int")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Integer", "Warning !",
+								JOptionPane.WARNING_MESSAGE);		
+						valueDouble = true;
+					} else if (type.equals("long")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Long", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueLong = true;
+					} else if (type.equals("short")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Short", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueLong = true;
+					}
+				}
+
+				if ((valueBoolean == false) && (valueInteger == false) && (valueDouble == false) && (valueLong == false) && (nameEmpty == false)) {
+					s = nameStructTextField.getText() + " = ";
+
+					if (type.equals("bool")) {
+						s = s + Boolean.parseBoolean(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("double")) {	
+						s = s + Double.parseDouble(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("float")) {	
+						s = s + Float.parseFloat(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("int")) {
+						s = s + Integer.parseInt(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("long")) {
+						s = s + Long.parseLong(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("short")) {
+						s = s + Short.parseShort(valueStructTextField.getText()) + " : ";
+					}
+
+					if (constantStructRadioButton.isSelected()) {
+						s = s + "const " + type;
+					} else {
+						s = s + type;
+					}
+					structListModel.addElement(s);
+					listTmpStruct.add(s);
+				}
+			} else {
+				try {
+					if (type.equals("bool")) {
+						Boolean.parseBoolean(valueStructTextField.getText());
+					} else if (type.equals("double")) {
+						Double.parseDouble(valueStructTextField.getText());
+					} else if (type.equals("float")) {
+						Float.parseFloat(valueStructTextField.getText());
+					} else if (type.equals("int")) {
+						Integer.parseInt(valueStructTextField.getText());
+					} else if (type.equals("long")) {
+						Long.parseLong(valueStructTextField.getText());
+					} else if (type.equals("short")) {
+						Short.parseShort(valueStructTextField.getText());
+					}
+				} catch (NumberFormatException e1) {
+					if (type.equals("bool")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Boolean", "Warning !",
+								JOptionPane.WARNING_MESSAGE);	
+						valueBoolean = true;
+					} else if (type.equals("double")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameteris not a Double", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueInteger = true;
+					} else if (type.equals("float")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameteris not a Float", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueInteger = true;
+					} else if (type.equals("int")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Integer", "Warning !",
+								JOptionPane.WARNING_MESSAGE);		
+						valueDouble = true;
+					} else if (type.equals("long")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Long", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueLong = true;
+					} else if (type.equals("short")) {
+						JDialog msg = new JDialog(this);
+						msg.setLocationRelativeTo(null);
+						JOptionPane.showMessageDialog(msg, "The value of the parameter is not a Short", "Warning !",
+								JOptionPane.WARNING_MESSAGE);
+						valueLong = true;
+					}
+				}
+
+				if ((valueBoolean == false) && (valueInteger == false) && (valueDouble == false) && (valueLong == false) && (nameEmpty == false)) {
+					s = nameStructTextField.getText() + " = ";
+
+					if (type.equals("bool")) {
+						s = s + Boolean.parseBoolean(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("double")) {	
+						s = s + Double.parseDouble(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("float")) {	
+						s = s + Float.parseFloat(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("int")) {
+						s = s + Integer.parseInt(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("long")) {
+						s = s + Long.parseLong(valueStructTextField.getText()) + " : ";
+					} else if (type.equals("short")) {
+						s = s + Short.parseShort(valueStructTextField.getText()) + " : ";
+					}
+
+					if (constantStructRadioButton.isSelected()) {
+						s = s + "const " + type;
+					} else {
+						s = s + type;
+					}
+					structListModel.setElementAt(s, alreadyExistId);
+					listTmpStruct.add(s);
+				}
+			}
+		}
+
+		if ("Add_Modify_Typedef".equals(e.getActionCommand())) {
+			listTmpTypedef = new ArrayList<String>();
+			Boolean alreadyExist = false;
+			int alreadyExistId = -1;
+			String type = (String) typeTypedefComboBoxString.getSelectedItem();
+			String s = null;
+
+			Boolean nameEmpty = false;
+
+			if (nameTypedefTextField.getText().isEmpty()) {
+				JDialog msg = new JDialog(this);
+				msg.setLocationRelativeTo(null);
+				JOptionPane.showMessageDialog(msg, "The name of typedef is empty", "Warning !",
+						JOptionPane.WARNING_MESSAGE);	
+				nameEmpty = true;
+			}
+
+			for (int i = 0; i < typedefListModel.getSize(); i++) {
+				if (nameTypedefTextField.getText().equals(typedefListModel.elementAt(i).split("\\s")[0])) {
+					alreadyExist = true;
+					alreadyExistId = i;
+				}
+			}
+
+			if (alreadyExist == false) {
+				s = nameTypedefTextField.getText() + " : " + type;
+				typedefListModel.addElement(s);
+				listTmpTypedef.add(s);
+			} else {
+				s = nameTypedefTextField.getText() + " : " + type;
+				typedefListModel.setElementAt(s, alreadyExistId);
+				listTmpTypedef.add(s);
+			}
+		}
+
+
+		if ("Remove".equals(e.getActionCommand())) {
+			if (structBool == true) {
+				if (structListModel.getSize() >= 1) {
+					structListModel.remove(structList.getSelectedIndex());
+				}
+			}
+			if (typedefBool == true) {
+				if (typedefListModel.getSize() >= 1) {
+					typedefListModel.remove(typedefList.getSelectedIndex());
+				}
+			}
+		}
+
+		if ("Up".equals(e.getActionCommand())) {
+			if (structBool == true) {
+				if (structList.getSelectedIndex() >= 1) {
+					String sprev = structListModel.get(structList.getSelectedIndex()-1);
+					structListModel.remove(structList.getSelectedIndex()-1);
+					structListModel.add(structList.getSelectedIndex()+1, sprev);
+				} else {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "Cannot move the parameter up", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+				}
+			}
+			if (typedefBool == true) {
+				if (typedefList.getSelectedIndex() >= 1) {
+					String sprev = typedefListModel.get(typedefList.getSelectedIndex()-1);
+					typedefListModel.remove(typedefList.getSelectedIndex()-1);
+					typedefListModel.add(typedefList.getSelectedIndex()+1, sprev);
+				} else {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "Cannot move the parameter up", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+				}
+			}
+		}
+
+		if ("Down".equals(e.getActionCommand())) {
+			if (structBool == true) {
+				if (structList.getSelectedIndex() < structListModel.getSize()-1) {
+					String snext = structListModel.get(structList.getSelectedIndex()+1);
+					structListModel.remove(structList.getSelectedIndex()+1);
+					structListModel.add(structList.getSelectedIndex(), snext);
+				} else {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "Cannot move the parameter down", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+				}
+			}
+			if (typedefBool == true) {
+				if (typedefList.getSelectedIndex() < typedefListModel.getSize()-1) {
+					String snext = typedefListModel.get(typedefList.getSelectedIndex()+1);
+					typedefListModel.remove(typedefList.getSelectedIndex()+1);
+					typedefListModel.add(typedefList.getSelectedIndex(), snext);
+				} else {
+					JDialog msg = new JDialog(this);
+					msg.setLocationRelativeTo(null);
+					JOptionPane.showMessageDialog(msg, "Cannot move the parameter down", "Warning !",
+							JOptionPane.WARNING_MESSAGE);
+				}
+			}
+		}
+
 		if ("Save_Close".equals(e.getActionCommand())) {
-			/** Save the name of the block into listNameTDF **/
 			block.setValue(new String(nameTextField.getText()));
 
-			/** Save the period of the block into listPeriodTmTDF **/
 			if (!(periodTextField.getText().isEmpty())) {
 				Boolean periodValueInteger = false;
 				try {
@@ -339,20 +954,115 @@ public class JDialogSysCAMSBlockTDF extends JDialog implements ActionListener {
 				}
 				if (periodValueInteger == false) {
 					block.setPeriod(Integer.parseInt(periodTextField.getText()));
+					block.setTime((String) periodComboBoxString.getSelectedItem());
 				}
 			} else {
 				block.setPeriod(-1);
+				block.setTime("");
 			}
 
-			/** Save the process code into listProcessCodeTDF **/
 			block.setProcessCode(processCodeTextArea.getText());
+			block.setListStruct(structListModel);
+			block.setNameTemplate(nameTemplateTextField.getText());
+			block.setTypeTemplate((String) typeTemplateComboBoxString.getSelectedItem());
+			block.setListTypedef(typedefListModel);
 
 			this.dispose();
 		}
 
 		if ("Cancel".equals(e.getActionCommand())) {
+			if (listTmpStruct != null) {
+				for (String s : listTmpStruct) {
+					structListModel.removeElement(s);
+				}
+			}
+			if (listTmpTypedef != null) {
+				for (String s : listTmpTypedef) {
+					typedefListModel.removeElement(s);
+				}
+			}
 			this.dispose();
 		}
 	}
-}
 
+	public void valueChanged(ListSelectionEvent e) {
+		JList listTmp = (JList) e.getSource();
+		if (listTmp.equals(structList)) {
+			structBool = true;
+			typedefBool = false;
+		}
+		if (listTmp.equals(typedefList)) {
+			typedefBool = true;
+			structBool = false;
+		}
+
+		if (e.getValueIsAdjusting() == false) {
+			if (structBool == true) {
+				if (structList.getSelectedIndex() != -1) {
+					String select = structListModel.get(structList.getSelectedIndex());
+					String[] splita = select.split(" = ");
+					nameStructTextField.setText(splita[0]);
+					String[] splitb = splita[1].split(" : ");
+					valueStructTextField.setText(splitb[0]);
+					String[] splitc = splitb[1].split(" ");
+
+					if (splitc[0].equals("const")) {
+						constantStructRadioButton.setSelected(true);
+						if (splitc[1].equals("bool")) {
+							typeStructComboBoxString.setSelectedIndex(0);
+						} else if (splitc[1].equals("double")) {
+							typeStructComboBoxString.setSelectedIndex(1);
+						} else if (splitc[1].equals("float")) {
+							typeStructComboBoxString.setSelectedIndex(2);
+						} else if (splitc[1].equals("int")) {
+							typeStructComboBoxString.setSelectedIndex(3);
+						} else if (splitc[1].equals("long")) {
+							typeStructComboBoxString.setSelectedIndex(4);
+						} else if (splitc[1].equals("short")) {
+							typeStructComboBoxString.setSelectedIndex(5);
+						}
+					} else {
+						constantStructRadioButton.setSelected(false);
+						if (splitc[0].equals("bool")) {
+							typeStructComboBoxString.setSelectedIndex(0);
+						} else if (splitc[0].equals("double")) {
+							typeStructComboBoxString.setSelectedIndex(1);
+						} else if (splitc[0].equals("float")) {
+							typeStructComboBoxString.setSelectedIndex(2);
+						} else if (splitc[0].equals("int")) {
+							typeStructComboBoxString.setSelectedIndex(3);
+						} else if (splitc[0].equals("long")) {
+							typeStructComboBoxString.setSelectedIndex(4);
+						} else if (splitc[0].equals("short")) {
+							typeStructComboBoxString.setSelectedIndex(5);
+						}
+					}
+
+					if (structListModel.getSize() >= 2) {
+						upButton.setEnabled(true);
+						downButton.setEnabled(true);
+					}
+					removeButton.setEnabled(true);
+				} 
+			}
+
+			if (typedefBool == true) {
+				if (typedefList.getSelectedIndex() != -1) {
+					String select = typedefListModel.get(typedefList.getSelectedIndex());
+					String[] split = select.split(" : ");
+					nameTypedefTextField.setText(split[0]);
+
+					if (split[1].equals("sc_dt::sc_int")) {
+						typeTypedefComboBoxString.setSelectedIndex(0);
+					}
+
+					if (typedefListModel.getSize() >= 2) {
+						upButton.setEnabled(true);
+						downButton.setEnabled(true);
+					}
+					removeButton.setEnabled(true);
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogSysCAMSPortConverter.java b/src/main/java/ui/window/JDialogSysCAMSPortConverter.java
index 0609e2e5f0c92766a0b9c366b133a7305f4099ee..954e10f6cea0ad657f633ce72bcf1a7b083ec7a7 100644
--- a/src/main/java/ui/window/JDialogSysCAMSPortConverter.java
+++ b/src/main/java/ui/window/JDialogSysCAMSPortConverter.java
@@ -39,31 +39,11 @@
 package ui.window;
 
 import ui.syscams.*;
-import ui.util.IconManager;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.AbstractAction;
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import javax.swing.KeyStroke;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
 
 /**
  * Class JDialogSystemCAMSPortConverterIn
@@ -71,7 +51,7 @@ import javax.swing.KeyStroke;
  * Creation: 07/05/2018
  * @version 1.0 07/05/2018
  * @author Irina Kit Yan LEE
-*/
+ */
 
 @SuppressWarnings("serial")
 
@@ -84,7 +64,7 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 	private JComboBox<String> periodComboBoxString;
 	private JTextField rateTextField;
 	private JTextField delayTextField;
-	private String listTypeString[];
+	private ArrayList<String> listArrayTypeString;
 	private JComboBox<String> typeComboBoxString;
 	private String listOriginString[];
 	private JComboBox<String> originComboBoxString;
@@ -103,14 +83,14 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 
 		/** Parameters **/
 		this.port = port;
-		
+
 		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
 		getRootPane().getActionMap().put("close", new AbstractAction() {
 			public void actionPerformed(ActionEvent e) {
-		        dispose();
+				dispose();
 			}
 		});
-        
+
 		dialog();
 	}
 
@@ -118,11 +98,10 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 		/** JPanel **/
 		JPanel mainPanel = new JPanel(new BorderLayout());
 		this.add(mainPanel);
-		
+
 		JPanel attributesMainPanel = new JPanel(new GridLayout());
 		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
-		
-		// Left Side
+
 		Box box = Box.createVerticalBox();
 		box.setBorder(BorderFactory.createTitledBorder("Setting converter input port attributes"));
 
@@ -134,44 +113,44 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 
 		JLabel labelName = new JLabel("Name : ");
 		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(labelName, constraints);
 		boxPanel.add(labelName);
 
-	   	 if (port.getPortName().toString().equals("")) { // name empty
+		if (port.getPortName().toString().equals("")) { 
 			nameTextField = new JTextField(10);
 		} else {
-			nameTextField = new JTextField(port.getPortName().toString(), 10); // name not empty
+			nameTextField = new JTextField(port.getPortName().toString(), 10);
 		}
-	   	constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(nameTextField, constraints);
 		boxPanel.add(nameTextField);
-	   
+
 		JLabel periodLabel = new JLabel("Period Tp : ");
 		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodLabel, constraints);
-	    	boxPanel.add(periodLabel);
+		boxPanel.add(periodLabel);
 
-	    	if (port.getPeriod() == -1) { // name empty 		// port.getName().toString().equals("") ||
+		if (port.getPeriod() == -1) { 
 			periodTextField = new JTextField(10);
 		} else {
-			periodTextField = new JTextField("" + port.getPeriod(), 10); // name not empty
+			periodTextField = new JTextField("" + port.getPeriod(), 10); 
 		}
-	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodTextField, constraints);
 		boxPanel.add(periodTextField);
-	    
+
 		listPeriodString = new String[3];
 		listPeriodString[0] = "us";
 		listPeriodString[1] = "ms";
@@ -187,95 +166,103 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 		periodComboBoxString.setActionCommand("time");
 		periodComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodComboBoxString, constraints);
-	    	boxPanel.add(periodComboBoxString);
-	    
+		boxPanel.add(periodComboBoxString);
+
 		JLabel rateLabel = new JLabel("Rate : ");
 		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateLabel, constraints);
-		boxPanel.add(rateLabel); // add label to box
+		boxPanel.add(rateLabel);
 
-		if (port.getRate() == -1) { // name empty	
+		if (port.getRate() == -1) {	
 			rateTextField = new JTextField(10);
 		} else {
-			rateTextField = new JTextField("" + port.getRate(), 10); // name not empty
+			rateTextField = new JTextField("" + port.getRate(), 10);
 		}
 		constraints = new GridBagConstraints(1, 2, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateTextField, constraints);
-		boxPanel.add(rateTextField); // add text to box
+		boxPanel.add(rateTextField); 
 
 		JLabel delayLabel = new JLabel("Delay : ");
 		constraints = new GridBagConstraints(0, 3, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayLabel, constraints);
-		boxPanel.add(delayLabel); // add label to box
-		
-		if (port.getDelay() == -1) { // name empty			// port.getName().toString().equals("") || 
+		boxPanel.add(delayLabel);
+
+		if (port.getDelay() == -1) { 
 			delayTextField = new JTextField(10);
 		} else {
-			delayTextField = new JTextField("" + port.getDelay(), 10); // name not empty
+			delayTextField = new JTextField("" + port.getDelay(), 10);
 		}
 		constraints = new GridBagConstraints(1, 3, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayTextField, constraints);
-		boxPanel.add(delayTextField); // add text to box
+		boxPanel.add(delayTextField);
 
 		JLabel typeLabel = new JLabel("Type : ");
 		constraints = new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeLabel, constraints);
-		boxPanel.add(typeLabel); // add label to box
-		
-		listTypeString = new String[4];
-		listTypeString[0] = "int";
-		listTypeString[1] = "bool";
-		listTypeString[2] = "double";
-		listTypeString[3] = "sc_dt::sc_logic";
-		typeComboBoxString = new JComboBox<String>(listTypeString);
-		if (port.getConvType().equals("") || port.getConvType().equals("int")) {
-			typeComboBoxString.setSelectedIndex(0);
-		}
-		if (port.getConvType().equals("bool")) {
-			typeComboBoxString.setSelectedIndex(1);
+		boxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("int");
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		if (port.getFather() != null) {
+			if (port.getFather() instanceof SysCAMSBlockTDF) {
+				if (!((SysCAMSBlockTDF) port.getFather()).getListTypedef().isEmpty()) {
+					for (int i = 0; i < ((SysCAMSBlockTDF) port.getFather()).getListTypedef().getSize(); i++) {
+						String select = ((SysCAMSBlockTDF) port.getFather()).getListTypedef().get(i);
+						String[] split = select.split(" : ");
+						listArrayTypeString.add(split[0]);
+					}
+				}
+			}
 		}
-		if (port.getConvType().equals("double")) {
-			typeComboBoxString.setSelectedIndex(2);
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
 		}
-		if (port.getConvType().equals("sc_dt::sc_logic")) {
-			typeComboBoxString.setSelectedIndex(3);
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (port.getConvType().equals("")) {
+				typeComboBoxString.setSelectedIndex(0);
+			}
+			if (port.getConvType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
 		}
-		typeComboBoxString.setActionCommand("type");
 		typeComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 4, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeComboBoxString, constraints);
-		boxPanel.add(typeComboBoxString); // add combo to box
-		
+		boxPanel.add(typeComboBoxString);
+
 		JLabel orginLabel = new JLabel("Origin : ");
 		constraints = new GridBagConstraints(0, 5, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(orginLabel, constraints);
-		boxPanel.add(orginLabel); // add label to box
-		
+		boxPanel.add(orginLabel);
+
 		listOriginString = new String[2];
 		listOriginString[0] = "Input";
 		listOriginString[1] = "Output";
@@ -288,16 +275,15 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 		originComboBoxString.setActionCommand("origin");
 		originComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 5, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(originComboBoxString, constraints);
-		boxPanel.add(originComboBoxString); // add combo to box
-		
-		box.add(boxPanel); // add border to box
-		attributesMainPanel.add(box); // add grid to grid
+		boxPanel.add(originComboBoxString);
+
+		box.add(boxPanel);
+		attributesMainPanel.add(box);
 
-		// Down Side
 		JPanel downPanel = new JPanel(new FlowLayout());
 
 		JButton saveCloseButton = new JButton("Save and close");
@@ -383,7 +369,7 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 			} else {
 				port.setOrigin(0);
 			}
-			
+
 			this.dispose();
 		}
 
@@ -391,5 +377,4 @@ public class JDialogSysCAMSPortConverter extends JDialog implements ActionListen
 			this.dispose();
 		}
 	}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogSysCAMSPortDE.java b/src/main/java/ui/window/JDialogSysCAMSPortDE.java
index cabfacf1c24f39d6b3ff29586ae0f87055415ab4..35c099f66f5b18445cfa65d5a2d0ffa82e93be80 100644
--- a/src/main/java/ui/window/JDialogSysCAMSPortDE.java
+++ b/src/main/java/ui/window/JDialogSysCAMSPortDE.java
@@ -71,7 +71,7 @@ import javax.swing.KeyStroke;
  * Creation: 07/05/2018
  * @version 1.0 07/05/2018
  * @author Irina Kit Yan LEE
-*/
+ */
 
 @SuppressWarnings("serial")
 
@@ -103,14 +103,14 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 
 		/** Parameters **/
 		this.port = port;
-		
+
 		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
 		getRootPane().getActionMap().put("close", new AbstractAction() {
 			public void actionPerformed(ActionEvent e) {
-		        dispose();
+				dispose();
 			}
 		});
-		
+
 		dialog();
 	}
 
@@ -118,11 +118,10 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 		/** JPanel **/
 		JPanel mainPanel = new JPanel(new BorderLayout());
 		this.add(mainPanel);
-		
+
 		JPanel attributesMainPanel = new JPanel(new GridLayout());
 		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
-		
-		// Left Side
+
 		Box box = Box.createVerticalBox();
 		box.setBorder(BorderFactory.createTitledBorder("Setting DE port attributes"));
 
@@ -134,41 +133,41 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 
 		JLabel labelName = new JLabel("Name : ");
 		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(labelName, constraints);
 		boxPanel.add(labelName);
 
-	    	if (port.getPortName().toString().equals("")) { // name empty
+		if (port.getPortName().toString().equals("")) { 
 			nameTextField = new JTextField(10);
 		} else {
-			nameTextField = new JTextField(port.getPortName().toString(), 10); // name not empty
+			nameTextField = new JTextField(port.getPortName().toString(), 10);
 		}
-	    	constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(nameTextField, constraints);
 		boxPanel.add(nameTextField);
-	   
+
 		JLabel periodLabel = new JLabel("Period Tp : ");
 		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodLabel, constraints);
-	    	boxPanel.add(periodLabel);
+		boxPanel.add(periodLabel);
 
-	    	if (port.getPeriod() == -1) { // name empty 		// port.getName().toString().equals("") ||
+		if (port.getPeriod() == -1) {
 			periodTextField = new JTextField(10);
 		} else {
-			periodTextField = new JTextField("" + port.getPeriod(), 10); // name not empty
+			periodTextField = new JTextField("" + port.getPeriod(), 10); 
 		}
-	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodTextField, constraints);
 		boxPanel.add(periodTextField);
 
@@ -187,60 +186,60 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 		periodComboBoxString.setActionCommand("time");
 		periodComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodComboBoxString, constraints);
-	   	 boxPanel.add(periodComboBoxString);
-	    
+		boxPanel.add(periodComboBoxString);
+
 		JLabel rateLabel = new JLabel("Rate : ");
 		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateLabel, constraints);
-		boxPanel.add(rateLabel); // add label to box
+		boxPanel.add(rateLabel); 
 
-		if (port.getRate() == -1) { // name empty	
+		if (port.getRate() == -1) { 
 			rateTextField = new JTextField(10);
 		} else {
-			rateTextField = new JTextField("" + port.getRate(), 10); // name not empty
+			rateTextField = new JTextField("" + port.getRate(), 10);
 		}
 		constraints = new GridBagConstraints(1, 2, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateTextField, constraints);
-		boxPanel.add(rateTextField); // add text to box
+		boxPanel.add(rateTextField);
 
 		JLabel delayLabel = new JLabel("Delay : ");
 		constraints = new GridBagConstraints(0, 3, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayLabel, constraints);
-		boxPanel.add(delayLabel); // add label to box
-		
-		if (port.getDelay() == -1) { // name empty			// port.getName().toString().equals("") || 
+		boxPanel.add(delayLabel);
+
+		if (port.getDelay() == -1) {
 			delayTextField = new JTextField(10);
 		} else {
-			delayTextField = new JTextField("" + port.getDelay(), 10); // name not empty
+			delayTextField = new JTextField("" + port.getDelay(), 10);
 		}
 		constraints = new GridBagConstraints(1, 3, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayTextField, constraints);
-		boxPanel.add(delayTextField); // add text to box
+		boxPanel.add(delayTextField);
 
 		JLabel typeLabel = new JLabel("Type : ");
 		constraints = new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeLabel, constraints);
-		boxPanel.add(typeLabel); // add label to box
-		
+		boxPanel.add(typeLabel);
+
 		listTypeString = new String[3];
 		listTypeString[0] = "int";
 		listTypeString[1] = "bool";
@@ -258,20 +257,20 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 		typeComboBoxString.setActionCommand("type");
 		typeComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 4, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeComboBoxString, constraints);
-		boxPanel.add(typeComboBoxString); // add combo to box
-		
+		boxPanel.add(typeComboBoxString); 
+
 		JLabel orginLabel = new JLabel("Origin : ");
 		constraints = new GridBagConstraints(0, 5, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(orginLabel, constraints);
-		boxPanel.add(orginLabel); // add label to box
-		
+		boxPanel.add(orginLabel); 
+
 		listOriginString = new String[2];
 		listOriginString[0] = "Input";
 		listOriginString[1] = "Output";
@@ -284,16 +283,15 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 		originComboBoxString.setActionCommand("origin");
 		originComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 5, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(originComboBoxString, constraints);
-		boxPanel.add(originComboBoxString); // add combo to box
+		boxPanel.add(originComboBoxString); 
 
-		box.add(boxPanel); // add border to box
-		attributesMainPanel.add(box); // add grid to grid
+		box.add(boxPanel); 
+		attributesMainPanel.add(box);
 
-		// Down Side
 		JPanel downPanel = new JPanel(new FlowLayout());
 
 		JButton saveCloseButton = new JButton("Save and close");
@@ -379,7 +377,7 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 			} else {
 				port.setOrigin(0);
 			}
-			
+
 			this.dispose();
 		}
 
@@ -387,5 +385,4 @@ public class JDialogSysCAMSPortDE extends JDialog implements ActionListener {
 			this.dispose();
 		}
 	}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogSysCAMSPortTDF.java b/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
index ee34842628a150a29d868e936542be807a1acfc4..c5a2609ab59df51072a613df31c4a31489f34871 100644
--- a/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
+++ b/src/main/java/ui/window/JDialogSysCAMSPortTDF.java
@@ -39,31 +39,11 @@
 package ui.window;
 
 import ui.syscams.*;
-import ui.util.IconManager;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.GridLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.AbstractAction;
-import javax.swing.BorderFactory;
-import javax.swing.Box;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import javax.swing.KeyStroke;
+import ui.util.*;
+import java.awt.*;
+import java.awt.event.*;
+import java.util.*;
+import javax.swing.*;
 
 /**
  * Class JDialogSystemCAMSPortTDF
@@ -71,7 +51,7 @@ import javax.swing.KeyStroke;
  * Creation: 26/04/2018
  * @version 1.0 26/04/2018
  * @author Irina Kit Yan LEE
-*/
+ */
 
 @SuppressWarnings("serial")
 
@@ -84,7 +64,7 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 	private JComboBox<String> periodComboBoxString;
 	private JTextField rateTextField;
 	private JTextField delayTextField;
-	private String listTypeString[];
+	private ArrayList<String> listArrayTypeString;
 	private JComboBox<String> typeComboBoxString;
 	private String listOriginString[];
 	private JComboBox<String> originComboBoxString;
@@ -103,14 +83,14 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 
 		/** Parameters **/
 		this.port = port;
-		
+
 		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("ESCAPE"), "close");
 		getRootPane().getActionMap().put("close", new AbstractAction() {
 			public void actionPerformed(ActionEvent e) {
-		        dispose();
+				dispose();
 			}
 		});
-		
+
 		dialog();
 	}
 
@@ -118,11 +98,10 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 		/** JPanel **/
 		JPanel mainPanel = new JPanel(new BorderLayout());
 		this.add(mainPanel);
-		
+
 		JPanel attributesMainPanel = new JPanel(new GridLayout());
 		mainPanel.add(attributesMainPanel, BorderLayout.NORTH);
-		
-		// Left Side
+
 		Box box = Box.createVerticalBox();
 		box.setBorder(BorderFactory.createTitledBorder("Setting TDF port attributes"));
 
@@ -134,41 +113,41 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 
 		JLabel labelName = new JLabel("Name : ");
 		constraints = new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
-        	gridBag.setConstraints(labelName, constraints);
-	    	boxPanel.add(labelName);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
+		gridBag.setConstraints(labelName, constraints);
+		boxPanel.add(labelName);
 
-	    	if (port.getPortName().toString().equals("")) { // name empty
+		if (port.getPortName().toString().equals("")) {
 			nameTextField = new JTextField(10);
 		} else {
-			nameTextField = new JTextField(port.getPortName().toString(), 10); // name not empty
+			nameTextField = new JTextField(port.getPortName().toString(), 10); 
 		}
-	   	 constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(15, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(nameTextField, constraints);
 		boxPanel.add(nameTextField);
-	   
+
 		JLabel periodLabel = new JLabel("Period Tp : ");
 		constraints = new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodLabel, constraints);
-	   	boxPanel.add(periodLabel);
+		boxPanel.add(periodLabel);
 
-	    	if (port.getPeriod() == -1) { // name empty 		// port.getName().toString().equals("") ||
+		if (port.getPeriod() == -1) { 
 			periodTextField = new JTextField(10);
 		} else {
-			periodTextField = new JTextField("" + port.getPeriod(), 10); // name not empty
+			periodTextField = new JTextField("" + port.getPeriod(), 10); 
 		}
-	    	constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+		constraints = new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodTextField, constraints);
 		boxPanel.add(periodTextField);
 
@@ -181,97 +160,109 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 			periodComboBoxString.setSelectedIndex(0);
 		} else if (port.getTime().equals("ms")){
 			periodComboBoxString.setSelectedIndex(1);
-		} else {
+		} else if (port.getTime().equals("s")){
 			periodComboBoxString.setSelectedIndex(2);
 		}
 		periodComboBoxString.setActionCommand("time");
 		periodComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(periodComboBoxString, constraints);
-	   	boxPanel.add(periodComboBoxString);
-	    
+		boxPanel.add(periodComboBoxString);
+
 		JLabel rateLabel = new JLabel("Rate : ");
 		constraints = new GridBagConstraints(0, 2, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateLabel, constraints);
-		boxPanel.add(rateLabel); // add label to box
+		boxPanel.add(rateLabel); 
 
-		if (port.getRate() == -1) { // name empty	
+		if (port.getRate() == -1) { 	
 			rateTextField = new JTextField(10);
 		} else {
-			rateTextField = new JTextField("" + port.getRate(), 10); // name not empty
+			rateTextField = new JTextField("" + port.getRate(), 10); 
 		}
 		constraints = new GridBagConstraints(1, 2, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(rateTextField, constraints);
-		boxPanel.add(rateTextField); // add text to box
+		boxPanel.add(rateTextField); 
 
 		JLabel delayLabel = new JLabel("Delay : ");
 		constraints = new GridBagConstraints(0, 3, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayLabel, constraints);
-		boxPanel.add(delayLabel); // add label to box
-		
-		if (port.getDelay() == -1) { // name empty			// port.getName().toString().equals("") || 
+		boxPanel.add(delayLabel);
+
+		if (port.getDelay() == -1) { 
 			delayTextField = new JTextField(10);
 		} else {
-			delayTextField = new JTextField("" + port.getDelay(), 10); // name not empty
+			delayTextField = new JTextField("" + port.getDelay(), 10);
 		}
 		constraints = new GridBagConstraints(1, 3, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(delayTextField, constraints);
-		boxPanel.add(delayTextField); // add text to box
+		boxPanel.add(delayTextField); 
 
 		JLabel typeLabel = new JLabel("Type : ");
 		constraints = new GridBagConstraints(0, 4, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeLabel, constraints);
-		boxPanel.add(typeLabel); // add label to box
-		
-		listTypeString = new String[3];
-		listTypeString[0] = "int";
-		listTypeString[1] = "bool";
-		listTypeString[2] = "double";
-		typeComboBoxString = new JComboBox<String>(listTypeString);
-		if (port.getTDFType().equals("") || port.getTDFType().equals("int")) {
-			typeComboBoxString.setSelectedIndex(0);
+		boxPanel.add(typeLabel);
+
+		listArrayTypeString = new ArrayList<String>();
+		listArrayTypeString.add("int");
+		listArrayTypeString.add("bool");
+		listArrayTypeString.add("double");
+		if (port.getFather() != null) {
+			if (port.getFather() instanceof SysCAMSBlockTDF) {
+				if (!((SysCAMSBlockTDF) port.getFather()).getListTypedef().isEmpty()) {
+					for (int i = 0; i < ((SysCAMSBlockTDF) port.getFather()).getListTypedef().getSize(); i++) {
+						String select = ((SysCAMSBlockTDF) port.getFather()).getListTypedef().get(i);
+						String[] split = select.split(" : ");
+						listArrayTypeString.add(split[0]);
+					}
+				}
+			}
 		}
-		if (port.getTDFType().equals("bool")) {
-			typeComboBoxString.setSelectedIndex(1);
+		typeComboBoxString = new JComboBox<String>();
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			typeComboBoxString.addItem(listArrayTypeString.get(i));
 		}
-		if (port.getTDFType().equals("double")) {
-			typeComboBoxString.setSelectedIndex(2);
+		for (int i = 0; i < listArrayTypeString.size(); i++) {
+			if (port.getTDFType().equals("")) {
+				typeComboBoxString.setSelectedIndex(0);
+			}
+			if (port.getTDFType().equals(listArrayTypeString.get(i))) {
+				typeComboBoxString.setSelectedIndex(i);
+			}
 		}
-		typeComboBoxString.setActionCommand("type");
 		typeComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 4, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 5, 10), 0, 0);
 		gridBag.setConstraints(typeComboBoxString, constraints);
-		boxPanel.add(typeComboBoxString); // add combo to box
-		
+		boxPanel.add(typeComboBoxString); 
+
 		JLabel orginLabel = new JLabel("Origin : ");
 		constraints = new GridBagConstraints(0, 5, 1, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(orginLabel, constraints);
-		boxPanel.add(orginLabel); // add label to box
-		
+		boxPanel.add(orginLabel); 
+
 		listOriginString = new String[2];
 		listOriginString[0] = "Input";
 		listOriginString[1] = "Output";
@@ -284,16 +275,15 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 		originComboBoxString.setActionCommand("origin");
 		originComboBoxString.addActionListener(this);
 		constraints = new GridBagConstraints(1, 5, 2, 1, 1.0, 1.0,
-							GridBagConstraints.CENTER,
-							GridBagConstraints.BOTH,
-							new Insets(5, 10, 5, 10), 0, 0);
+				GridBagConstraints.CENTER,
+				GridBagConstraints.BOTH,
+				new Insets(5, 10, 15, 10), 0, 0);
 		gridBag.setConstraints(originComboBoxString, constraints);
-		boxPanel.add(originComboBoxString); // add combo to box
-		
-		box.add(boxPanel); // add border to box
-		attributesMainPanel.add(box); // add grid to grid
+		boxPanel.add(originComboBoxString); 
+
+		box.add(boxPanel); 
+		attributesMainPanel.add(box); 
 
-		// Down Side
 		JPanel downPanel = new JPanel(new FlowLayout());
 
 		JButton saveCloseButton = new JButton("Save and close");
@@ -379,7 +369,7 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 			} else {
 				port.setOrigin(0);
 			}
-			
+
 			this.dispose();
 		}
 
@@ -387,5 +377,4 @@ public class JDialogSysCAMSPortTDF extends JDialog implements ActionListener {
 			this.dispose();
 		}
 	}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLADRandom.java b/src/main/java/ui/window/JDialogTMLADRandom.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLCPControllerInstance.java b/src/main/java/ui/window/JDialogTMLCPControllerInstance.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLCPStorageInstance.java b/src/main/java/ui/window/JDialogTMLCPStorageInstance.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLCPTransferInstance.java b/src/main/java/ui/window/JDialogTMLCPTransferInstance.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLCompositePort.java b/src/main/java/ui/window/JDialogTMLCompositePort.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLConnectorNode.java b/src/main/java/ui/window/JDialogTMLConnectorNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLRemoteCompositeComponent.java b/src/main/java/ui/window/JDialogTMLRemoteCompositeComponent.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLSDInstance.java b/src/main/java/ui/window/JDialogTMLSDInstance.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMLTaskArtifact.java b/src/main/java/ui/window/JDialogTMLTaskArtifact.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTMatrixManagement.java b/src/main/java/ui/window/JDialogTMatrixManagement.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTOSClass.java b/src/main/java/ui/window/JDialogTOSClass.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTObjectName.java b/src/main/java/ui/window/JDialogTObjectName.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTPNValidation.java b/src/main/java/ui/window/JDialogTPNValidation.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTextProcess.java b/src/main/java/ui/window/JDialogTextProcess.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTimeInterval.java b/src/main/java/ui/window/JDialogTimeInterval.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTimeIntervalUnit.java b/src/main/java/ui/window/JDialogTimeIntervalUnit.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogTwoString.java b/src/main/java/ui/window/JDialogTwoString.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogUPPAALGeneration.java b/src/main/java/ui/window/JDialogUPPAALGeneration.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogUPPAALValidation.java b/src/main/java/ui/window/JDialogUPPAALValidation.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogUseCase.java b/src/main/java/ui/window/JDialogUseCase.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogVGMNNode.java b/src/main/java/ui/window/JDialogVGMNNode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JDialogVersioningConnector.java b/src/main/java/ui/window/JDialogVersioningConnector.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameBasicText.java b/src/main/java/ui/window/JFrameBasicText.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameBird.java b/src/main/java/ui/window/JFrameBird.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameCode.java b/src/main/java/ui/window/JFrameCode.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameDeadlock.java b/src/main/java/ui/window/JFrameDeadlock.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameMinimize.java b/src/main/java/ui/window/JFrameMinimize.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameNC.java b/src/main/java/ui/window/JFrameNC.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFramePowerManagementAnalysis.java b/src/main/java/ui/window/JFramePowerManagementAnalysis.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameRefusalGraph.java b/src/main/java/ui/window/JFrameRefusalGraph.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameRequirementTable.java b/src/main/java/ui/window/JFrameRequirementTable.java
old mode 100755
new mode 100644
index 7b6d03580f89f6456d64d6d01311d494f88819e0..d859b328e02a4379b53099800a5d51dd906b1d8f
--- a/src/main/java/ui/window/JFrameRequirementTable.java
+++ b/src/main/java/ui/window/JFrameRequirementTable.java
@@ -1,26 +1,26 @@
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
+ *
  * ludovic.apvrille AT enst.fr
- * 
+ *
  * This software is a computer program whose purpose is to allow the
  * edition of TURTLE analysis, design and deployment diagrams, to
  * allow the generation of RT-LOTOS or Java code from this diagram,
  * and at last to allow the analysis of formal validation traces
  * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
  * from INRIA Rhone-Alpes.
- * 
+ *
  * This software is governed by the CeCILL  license under French law and
  * abiding by the rules of distribution of free software.  You can  use,
  * modify and/ or redistribute the software under the terms of the CeCILL
  * license as circulated by CEA, CNRS and INRIA at the following URL
  * "http://www.cecill.info".
- * 
+ *
  * As a counterpart to the access to the source code and  rights to copy,
  * modify and redistribute granted by the license, users are provided only
  * with a limited warranty  and the software's author,  the holder of the
  * economic rights,  and the successive licensors  have only  limited
  * liability.
- * 
+ *
  * In this respect, the user's attention is drawn to the risks associated
  * with loading,  using,  modifying and/or developing or reproducing the
  * software by the user in light of its specific status of free software,
@@ -31,17 +31,19 @@
  * requirements in conditions enabling the security of their systems and/or
  * data to be ensured and,  more generally, to use and operate it in the
  * same conditions as regards security.
- * 
+ *
  * The fact that you are presently reading this means that you have had
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
 package ui.window;
 
-import common.ConfigurationTTool;
 import common.SpecConfigTTool;
 import myutil.*;
-import ui.*;
+import ui.AvatarRequirementPanel;
+import ui.RequirementPanel;
+import ui.TGComponent;
+import ui.TURTLEPanel;
 import ui.avatarrd.AvatarRDPanel;
 import ui.req.RequirementDiagramPanel;
 import ui.util.IconManager;
@@ -58,223 +60,295 @@ import java.util.LinkedList;
 import java.util.Vector;
 
 /**
-* Class JFrameRequirementTable
-* Creation: 17/02/2009
-* version 1.0 17/02/2009
-* @author Ludovic APVRILLE
+ * Class JFrameRequirementTable
+ * Creation: 17/02/2009
+ * version 1.0 17/02/2009
+ *
+ * @author Ludovic APVRILLE
  */
-public	class JFrameRequirementTable extends JFrame implements ActionListener /*, StoppableGUIElement, SteppedAlgorithm, ExternalCall*/ {
-	
-	private static final String DOC_GEN_NAME = "tablereq.html";
-	
-	private Vector<TURTLEPanel> tabs;
-	
-	private java.util.List<AbstractTableModel> atms;
-	private java.util.List<TableSorter> tss;
-	private java.util.List<String> titles;
-	
-	//private StatisticsTableModel tm;
-	
-	//private JStatisticsPanel jstat;
-	
-	//private java.util.List<JScrollPane> panes;
-	private JButton buttonGenerate;
-	
-	//private JTextField eq, sw, tr, li, pa;
-	
-	// tab pane
-	JTabbedPane mainTabbedPane;
-	
-	JTabbedPane main; // from MGUI
-	
-	Point [] pts; // storing column data, see JDialogRequirementTable
-	
-	
-	
-	//shortest paths
-	//JComboBox combo1, combo2, combo3, combo4;
-	//JTextField combo1, combo2, combo3, combo4;
-	//JTextField text1, text2;
-	//JButton goPath, goPathL, savePath, savePathL;
-	
-	
-	public JFrameRequirementTable(String title, Vector<TURTLEPanel> _tabs, JTabbedPane _main, Point [] _pts) {
-		super(title);
-		
-		tabs = _tabs;
-		pts = _pts;
-		main = _main;
-		//makeRequirements();
-		
-		atms = new ArrayList<AbstractTableModel>();
-		tss = new ArrayList<TableSorter>();
-		titles = new ArrayList<String>();
-		
-		makeComponents();
-	}
-	
-	public void makeComponents() {
-		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
-		Container framePanel = getContentPane();
-		framePanel.setLayout(new BorderLayout());
-		
-		JButton button1 = new JButton("Close", IconManager.imgic27);
-		button1.addActionListener(this);
-		buttonGenerate = new JButton("Generate doc.", IconManager.imgic29);
-		buttonGenerate.addActionListener(this);
-		JPanel jp = new JPanel();
-		jp.add(button1);
-		jp.add(buttonGenerate);
-		
-		framePanel.add(jp, BorderLayout.SOUTH);
-		
-    	// Issue #41 Ordering of tabbed panes 
-		mainTabbedPane = GraphicLib.createTabbedPane();//new JTabbedPane();
-		
-		// Information
-		TURTLEPanel tp;
-		int i, j;
+public class JFrameRequirementTable extends JFrame implements ActionListener /*, StoppableGUIElement, SteppedAlgorithm, ExternalCall*/ {
+
+    private static final String DOC_GEN_NAME_HTML = "tablereq.html";
+    private static final String DOC_GEN_NAME_CSV = "tablereq.csv";
+
+
+    private Vector<TURTLEPanel> tabs;
+
+    private java.util.List<AbstractTableModel> atms;
+    private java.util.List<TableSorter> tss;
+    private java.util.List<String> titles;
+
+    //private StatisticsTableModel tm;
+
+    //private JStatisticsPanel jstat;
+
+    //private java.util.List<JScrollPane> panes;
+    private JButton buttonGenerate, buttonGenerateCSV;
+
+    //private JTextField eq, sw, tr, li, pa;
+
+    // tab pane
+    JTabbedPane mainTabbedPane;
+
+    JTabbedPane main; // from MGUI
+
+    Point[] pts; // storing column data, see JDialogRequirementTable
+
+
+    //shortest paths
+    //JComboBox combo1, combo2, combo3, combo4;
+    //JTextField combo1, combo2, combo3, combo4;
+    //JTextField text1, text2;
+    //JButton goPath, goPathL, savePath, savePathL;
+
+
+    public JFrameRequirementTable(String title, Vector<TURTLEPanel> _tabs, JTabbedPane _main, Point[] _pts) {
+        super(title);
+
+        tabs = _tabs;
+        pts = _pts;
+        main = _main;
+        //makeRequirements();
+
+        atms = new ArrayList<AbstractTableModel>();
+        tss = new ArrayList<TableSorter>();
+        titles = new ArrayList<String>();
+
+        makeComponents();
+    }
+
+    public void makeComponents() {
+        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+        Container framePanel = getContentPane();
+        framePanel.setLayout(new BorderLayout());
+
+        JButton button1 = new JButton("Close", IconManager.imgic27);
+        button1.addActionListener(this);
+        buttonGenerate = new JButton("Generate HTML doc.", IconManager.imgic29);
+        buttonGenerate.addActionListener(this);
+        buttonGenerateCSV = new JButton("Generate CSV doc.", IconManager.imgic29);
+        buttonGenerateCSV.addActionListener(this);
+        JPanel jp = new JPanel();
+        jp.add(button1);
+        jp.add(buttonGenerate);
+        jp.add(buttonGenerateCSV);
+
+        framePanel.add(jp, BorderLayout.SOUTH);
+
+        // Issue #41 Ordering of tabbed panes
+        mainTabbedPane = GraphicLib.createTabbedPane();//new JTabbedPane();
+
+        // Information
+        TURTLEPanel tp;
+        int i, j;
 //		TDiagramPanel tdp;
-		RequirementDiagramPanel rdp;
-		AvatarRDPanel ardp;
-		LinkedList<TGComponent> all, list;
-		all = new LinkedList<TGComponent>();
-		String title;
-		String maintitle;
-		
-		for(i=0; i<tabs.size(); i++) {
-			tp = tabs.elementAt(i);
-			maintitle = main.getTitleAt(i);
-			if (tp instanceof RequirementPanel) {
-				for(j=0; j<tp.panels.size(); j++) {
-					if (tp.panels.elementAt(j) instanceof RequirementDiagramPanel) {
-						rdp = (RequirementDiagramPanel)(tp.panels.elementAt(j));
-						list = rdp.getAllRequirements();
-						all.addAll(list);
-						
-						title = maintitle + " / " + tp.tabbedPane.getTitleAt(j);
-						
-						makeJScrollPane(list, mainTabbedPane, title);
-					}
-				}
-			}
-			if (tp instanceof AvatarRequirementPanel) {
-				for(j=0; j<tp.panels.size(); j++) {
-					if (tp.panels.elementAt(j) instanceof AvatarRDPanel) {
-						ardp = (AvatarRDPanel)(tp.panels.elementAt(j));
-						list = ardp.getAllRequirements();
-						all.addAll(list);
-						
-						title = maintitle + " / " + tp.tabbedPane.getTitleAt(j);
-						
-						makeJScrollPane(list, mainTabbedPane, title);
-					}
-				}
-			}
-		}
-		
-		makeJScrollPane(all, mainTabbedPane, "All requirements");
-		
-		framePanel.add(mainTabbedPane, BorderLayout.CENTER);
-		
-		pack();
-		
-		TraceManager.addDev("Requirements computed");
-	}
-	
-	private void makeJScrollPane(LinkedList<TGComponent> list, JTabbedPane tab, String title) {
-		RequirementsTableModel rtm = new RequirementsTableModel(list, pts);
-		TableSorter sorterRTM = new TableSorter(rtm);
+        RequirementDiagramPanel rdp;
+        AvatarRDPanel ardp;
+        LinkedList<TGComponent> all, list;
+        all = new LinkedList<TGComponent>();
+        String title;
+        String maintitle;
+
+        for (i = 0; i < tabs.size(); i++) {
+            tp = tabs.elementAt(i);
+            maintitle = main.getTitleAt(i);
+            if (tp instanceof RequirementPanel) {
+                for (j = 0; j < tp.panels.size(); j++) {
+                    if (tp.panels.elementAt(j) instanceof RequirementDiagramPanel) {
+                        rdp = (RequirementDiagramPanel) (tp.panels.elementAt(j));
+                        list = rdp.getAllRequirements();
+                        all.addAll(list);
+
+                        title = maintitle + " / " + tp.tabbedPane.getTitleAt(j);
+
+                        makeJScrollPane(list, mainTabbedPane, title);
+                    }
+                }
+            }
+            if (tp instanceof AvatarRequirementPanel) {
+                for (j = 0; j < tp.panels.size(); j++) {
+                    if (tp.panels.elementAt(j) instanceof AvatarRDPanel) {
+                        ardp = (AvatarRDPanel) (tp.panels.elementAt(j));
+                        list = ardp.getAllRequirements();
+                        all.addAll(list);
+
+                        title = maintitle + " / " + tp.tabbedPane.getTitleAt(j);
+
+                        makeJScrollPane(list, mainTabbedPane, title);
+                    }
+                }
+            }
+        }
+
+        makeJScrollPane(all, mainTabbedPane, "All requirements");
+
+        framePanel.add(mainTabbedPane, BorderLayout.CENTER);
+
+        pack();
+
+        TraceManager.addDev("Requirements computed");
+    }
+
+    private void makeJScrollPane(LinkedList<TGComponent> list, JTabbedPane tab, String title) {
+        RequirementsTableModel rtm = new RequirementsTableModel(list, pts);
+        TableSorter sorterRTM = new TableSorter(rtm);
         JTable jtableRTM = new JTable(sorterRTM);
         sorterRTM.setTableHeader(jtableRTM.getTableHeader());
-		
-		for(int i=0; i<pts.length; i++) {
-			((jtableRTM.getColumnModel()).getColumn(i)).setPreferredWidth((pts[i].y)*50);
-		}
-		jtableRTM.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
-		JScrollPane jspRTM = new JScrollPane(jtableRTM);
-		jspRTM.setWheelScrollingEnabled(true);
-		jspRTM.getVerticalScrollBar().setUnitIncrement(10);
-		
-		tab.addTab(title, IconManager.imgic13, jspRTM, title);
-	
-		
-		atms.add(rtm);
-		tss.add(sorterRTM);
-		titles.add(title);
-	}
-	
-	@Override
-	public void	actionPerformed(ActionEvent evt)  {
-		String command = evt.getActionCommand();
-		//
-		
-		if (command.equals("Close")) {
-			dispose();
-			return;
-		} else if (evt.getSource() == buttonGenerate) {
-			
-			// Issue #32 Improve document generation
-			final File genFile = new File( SpecConfigTTool.DocGenPath );
-			String path;
-			
-			try {
-				path = genFile.getCanonicalPath();
-			} catch (IOException e) {
-				e.printStackTrace();
-				
-				path = genFile.getAbsolutePath();
-			}
-			
-			path += File.separator + DOC_GEN_NAME;
-
-			if ( generateDoc() ) {
-                JOptionPane.showMessageDialog(	this,
-												"Document '" + path + "' has been successfully generated.",
-												"Documentation Generation",
-												JOptionPane.INFORMATION_MESSAGE );
-			}
-			else {
-                JOptionPane.showMessageDialog( 	this,
-                								"Error generating document '" + path + "'.",
-						                        "Error",
-						                        JOptionPane.INFORMATION_MESSAGE);
-			}
-		} 
-	}
-	
-	private boolean generateDoc() {
-		TraceManager.addDev("Generate doc");
-		HTMLCodeGeneratorForTables doc = new HTMLCodeGeneratorForTables();
-		//String s = doc.getHTMLCode(atms, titles, "List of Requirements").toString();
-		String s = doc.getHTMLCodeFromSorters(tss, titles, "List of Requirements").toString();
-		TraceManager.addDev("HTML code:" + s); 
-		
-		String path;
-		if (SpecConfigTTool.DocGenPath.length() > 0) {
-			path = SpecConfigTTool.DocGenPath + "/";
-			File dir = new File(path);
-			if (!dir.exists())
-				dir.mkdirs();
-		} else {
-			path = "";
-		}
-		
-		path += DOC_GEN_NAME;//"tablereq.html";
-		
-		try {
-			FileUtils.saveFile(path, s);
-		} catch (FileException fe) {
-			fe.printStackTrace();
-			TraceManager.addDev("HTML file could not be saved in " + path);
-			
-			return false;
-		}
-		
-		return true;
-	}
-	
-//	
+
+        for (int i = 0; i < pts.length; i++) {
+            ((jtableRTM.getColumnModel()).getColumn(i)).setPreferredWidth((pts[i].y) * 50);
+        }
+        jtableRTM.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+        JScrollPane jspRTM = new JScrollPane(jtableRTM);
+        jspRTM.setWheelScrollingEnabled(true);
+        jspRTM.getVerticalScrollBar().setUnitIncrement(10);
+
+        tab.addTab(title, IconManager.imgic13, jspRTM, title);
+
+
+        atms.add(rtm);
+        tss.add(sorterRTM);
+        titles.add(title);
+    }
+
+    private String computePath(String genName) {
+        // Issue #32 Improve document generation
+        final File genFile = new File(SpecConfigTTool.DocGenPath);
+        String path;
+
+        try {
+            path = genFile.getCanonicalPath();
+        } catch (IOException e) {
+            e.printStackTrace();
+            path = genFile.getAbsolutePath();
+        }
+
+        path += File.separator + genName;
+        return path;
+    }
+
+
+    @Override
+    public void actionPerformed(ActionEvent evt) {
+        String command = evt.getActionCommand();
+        //
+
+        if (command.equals("Close")) {
+            dispose();
+            return;
+        } else if (evt.getSource() == buttonGenerate) {
+
+            // Compute path
+            String path = computePath(DOC_GEN_NAME_HTML);
+
+            if (generateDoc()) {
+                JOptionPane.showMessageDialog(this,
+                        "Document '" + path + "' has been successfully generated.",
+                        "Documentation Generation",
+                        JOptionPane.INFORMATION_MESSAGE);
+            } else {
+                JOptionPane.showMessageDialog(this,
+                        "Error generating document '" + path + "'.",
+                        "Error",
+                        JOptionPane.INFORMATION_MESSAGE);
+            }
+        } else if (evt.getSource() == buttonGenerateCSV) {
+            String path = computePath(DOC_GEN_NAME_CSV);
+            if (generateDocCSV()) {
+                JOptionPane.showMessageDialog(this,
+                        "Document '" + path + "' has been successfully generated.",
+                        "Documentation Generation",
+                        JOptionPane.INFORMATION_MESSAGE);
+            } else {
+                JOptionPane.showMessageDialog(this,
+                        "Error generating HTML document '" + path + "'.",
+                        "Error",
+                        JOptionPane.INFORMATION_MESSAGE);
+            }
+        }
+    }
+
+    private boolean generateDoc() {
+        TraceManager.addDev("Generate doc");
+        HTMLCodeGeneratorForTables doc = new HTMLCodeGeneratorForTables();
+        //String s = doc.getHTMLCode(atms, titles, "List of Requirements").toString();
+        String s = doc.getHTMLCodeFromSorters(tss, titles, "List of Requirements").toString();
+        //TraceManager.addDev("HTML code:" + s);
+
+        String path;
+        if (SpecConfigTTool.DocGenPath.length() > 0) {
+            path = SpecConfigTTool.DocGenPath + "/";
+            File dir = new File(path);
+            if (!dir.exists())
+                dir.mkdirs();
+        } else {
+            path = "";
+        }
+
+        path += DOC_GEN_NAME_HTML;
+
+        try {
+            FileUtils.saveFile(path, s);
+        } catch (FileException fe) {
+            //fe.printStackTrace();
+            TraceManager.addDev("HTML file could not be saved in " + path);
+
+            return false;
+        }
+
+        return true;
+    }
+
+    private boolean generateDocCSV() {
+        int i, j; // indexes of loops
+
+        TraceManager.addDev("Generate doc");
+        StringBuffer sb = new StringBuffer("");
+        for (TableSorter ts : tss) {
+            for (i = 0; i < ts.getRowCount(); i++) {
+                for (j = 0; j < ts.getColumnCount(); j++) {
+                    if (j != 0)
+                        sb.append("; ");
+                    String tmp = ts.getValueAt(i, j).toString();
+                    tmp = Conversion.replaceAllString(tmp, "\n", " ");
+                    tmp = Conversion.replaceAllString(tmp, "\r", " ");
+                    sb.append(tmp);
+
+                }
+                sb.append("\n");
+            }
+        }
+
+        String s = sb.toString();
+
+        //TraceManager.addDev("CSV code:" + s);
+
+        String path;
+        if (SpecConfigTTool.DocGenPath.length() > 0) {
+            path = SpecConfigTTool.DocGenPath + "/";
+            File dir = new File(path);
+            if (!dir.exists())
+                dir.mkdirs();
+        } else {
+            path = "";
+        }
+
+        path += DOC_GEN_NAME_CSV;
+
+        try {
+            FileUtils.saveFile(path, s);
+        } catch (FileException fe) {
+            fe.printStackTrace();
+            TraceManager.addDev("CSV file could not be saved in " + path);
+
+            return false;
+        }
+
+        return true;
+    }
+
+
+//
 //	private int maxLengthColumn(Component c, AbstractTableModel tm, int index) {
 //		int w = 0, wtmp;
 //		FontMetrics fm = c.getFontMetrics(c.getFont());
diff --git a/src/main/java/ui/window/JFrameSimulationTrace.java b/src/main/java/ui/window/JFrameSimulationTrace.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameStatistics.java b/src/main/java/ui/window/JFrameStatistics.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JFrameText.java b/src/main/java/ui/window/JFrameText.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JSimulationPanel.java b/src/main/java/ui/window/JSimulationPanel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JSimulationPanelChrono.java b/src/main/java/ui/window/JSimulationPanelChrono.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JSimulationPanelInterface.java b/src/main/java/ui/window/JSimulationPanelInterface.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/JStartingWindow.java b/src/main/java/ui/window/JStartingWindow.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/LinksNCTableModel.java b/src/main/java/ui/window/LinksNCTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/PathsNCTableModel.java b/src/main/java/ui/window/PathsNCTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/RequirementsTableModel.java b/src/main/java/ui/window/RequirementsTableModel.java
old mode 100755
new mode 100644
index 76490dd34c97d0f98c760cdd7f0a2c57654a90c1..6ee76175810ee1c55973792d490986b3eca5eb53
--- a/src/main/java/ui/window/RequirementsTableModel.java
+++ b/src/main/java/ui/window/RequirementsTableModel.java
@@ -1,26 +1,26 @@
 /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
+ *
  * ludovic.apvrille AT enst.fr
- * 
+ *
  * This software is a computer program whose purpose is to allow the
  * edition of TURTLE analysis, design and deployment diagrams, to
  * allow the generation of RT-LOTOS or Java code from this diagram,
  * and at last to allow the analysis of formal validation traces
  * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
  * from INRIA Rhone-Alpes.
- * 
+ *
  * This software is governed by the CeCILL  license under French law and
  * abiding by the rules of distribution of free software.  You can  use,
  * modify and/ or redistribute the software under the terms of the CeCILL
  * license as circulated by CEA, CNRS and INRIA at the following URL
  * "http://www.cecill.info".
- * 
+ *
  * As a counterpart to the access to the source code and  rights to copy,
  * modify and redistribute granted by the license, users are provided only
  * with a limited warranty  and the software's author,  the holder of the
  * economic rights,  and the successive licensors  have only  limited
  * liability.
- * 
+ *
  * In this respect, the user's attention is drawn to the risks associated
  * with loading,  using,  modifying and/or developing or reproducing the
  * software by the user in light of its specific status of free software,
@@ -31,16 +31,15 @@
  * requirements in conditions enabling the security of their systems and/or
  * data to be ensured and,  more generally, to use and operate it in the
  * same conditions as regards security.
- * 
+ *
  * The fact that you are presently reading this means that you have had
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
 
-
-
 package ui.window;
 
+import myutil.TraceManager;
 import ui.TGComponent;
 import ui.avatarrd.AvatarRDRequirement;
 import ui.req.Requirement;
@@ -50,147 +49,197 @@ import java.awt.*;
 import java.util.LinkedList;
 
 /**
-* Class RequirementsTableModel
-* Main data of requirements
-* Creation: 17/02/2009
-* @version 1.0 17/02/2009
-* @author Ludovic APVRILLE
+ * Class RequirementsTableModel
+ * Main data of requirements
+ * Creation: 17/02/2009
+ *
+ * @author Ludovic APVRILLE
+ * @version 1.0 17/02/2009
  */
 public class RequirementsTableModel extends AbstractTableModel {
-	private LinkedList<TGComponent> list;
-	private Point[] pts;
-	
-	//private String [] names;
-	public RequirementsTableModel(LinkedList<TGComponent> _list, Point [] _pts) {
-		list = _list;
-		pts = _pts;
-		//computeData(_ncs);
-	}
-	
-	// From AbstractTableModel
-	public int getRowCount() {
-		return list.size();
-	}
-	
-	public int getColumnCount() {
-		return pts.length;
-	}
-	
-	public Object getValueAt(int row, int column) {
-		TGComponent tgc = list.get(row);
-		
-		if (tgc instanceof Requirement) {
-			Requirement r = (Requirement)(tgc);
-			int index;
-			int type;
-			
-			index = pts[column].x-1;
-			
-			switch(index) {
-			case 0:
-				return r.getID();
-			case 1:
-				return r.getValue();
-			case 2:
-				type = r.getRequirementType();
-				if (type == 0) {
-					return "Regular req.";
-				} else if (type == 1) {
-					return "Formal req.";
-				} else {
-					return "Security req.";
-				}
-			case 3:
-				return r.getText();
-			case 4:
-				return r.getKind();
-			case 5:
-				return r.getCriticality();
-			case 6:
-				if (r.getRequirementType() == 1) {
-					return r.getViolatedAction();
-				} else {
-					return " - ";
-				}
-			case 7:
-				if (r.getRequirementType() == 2) {
-					return r.getAttackTreeNode();
-				} else {
-					return " - ";
-				}
-			case 8:
-				if (r.isVerified()) {
-					if (r.isSatisfied()) {
-						return "yes";
-					} else {
-						return "no";
-					}
-				} else {
-					return "-";
-				}
-			}
-		}
-		
-		if (tgc instanceof AvatarRDRequirement) {
-			AvatarRDRequirement rd = (AvatarRDRequirement)(tgc);
-			int index;
-			int type;
-			
-			index = pts[column].x-1;
-			
-			switch(index) {
-			case 0:
-				return rd.getID();
-			case 1:
-				return rd.getValue();
-			case 2:
-				type = rd.getRequirementType();
-				if (type == 0) {
-					return "Regular req.";
-				} else if (type == 1) {
-					return "Safety req.";
-				} else {
-					return "Security req.";
-				}
-			case 3:
-				return rd.getText();
-			case 4:
-				return rd.getKind();
-			case 5:
-				return rd.getCriticality();
-			case 6:
+    private LinkedList<TGComponent> list;
+    private Point[] pts;
+
+    //private String [] names;
+    public RequirementsTableModel(LinkedList<TGComponent> _list, Point[] _pts) {
+        list = _list;
+        pts = _pts;
+        //computeData(_ncs);
+    }
+
+    // From AbstractTableModel
+    public int getRowCount() {
+        return list.size();
+    }
+
+    public int getColumnCount() {
+        return pts.length;
+    }
+
+    public Object getValueAt(int row, int column) {
+        TGComponent tgc = list.get(row);
+
+        if (tgc instanceof Requirement) {
+            Requirement r = (Requirement) (tgc);
+            int index;
+            int type;
+
+            index = pts[column].x - 1;
+
+            switch (index) {
+                case 0:
+                    return r.getID();
+                case 1:
+                    type = r.getRequirementType();
+                    if (type == 0) {
+                        return "Regular req.";
+                    } else if (type == 1) {
+                        return "Formal req.";
+                    } else {
+                        return "Security req.";
+                    }
+                case 2:
+                    return r.getValue();
+                case 3:
+                    return r.getText();
+                case 4:
+                    return r.getKind();
+                case 5:
+                    return r.getCriticality();
+                case 6:
+                    if (r.getRequirementType() == 1) {
+                        return r.getViolatedAction();
+                    } else {
+                        return " - ";
+                    }
+                case 7:
+                    if (r.getRequirementType() == 2) {
+                        return r.getAttackTreeNode();
+                    } else {
+                        return " - ";
+                    }
+                case 8:
+                    if (r.isVerified()) {
+                        if (r.isSatisfied()) {
+                            return "yes";
+                        } else {
+                            return "no";
+                        }
+                    } else {
+                        return "-";
+                    }
+                case 9:
+                    return "-";
+                case 10:
+                    return "-";
+                case 11:
+                    return "-";
+                case 12:
+                    return "-";
+                case 13:
+                    return "-";
+                case 14:
+                    return "-";
+                case 15:
+                    return "-";
+                case 16:
+                    return "-";
+                case 17:
+                    return "-";
+                case 18:
+                    return "-";
+                case 19:
+                    return "-";
+                case 20:
+                    return "-";
+            }
+        }
+
+        if (tgc instanceof AvatarRDRequirement) {
+            AvatarRDRequirement rd = (AvatarRDRequirement) (tgc);
+            int index;
+            int type;
+
+            index = pts[column].x - 1;
+
+            switch (index) {
+                case 0:
+                    return rd.getID();
+                case 1:
+                    return rd.getStereotype();
+                case 2:
+                    return rd.getValue();
+                case 3:
+                    return rd.getText();
+                case 4:
+                    return rd.getKind();
+                case 5:
+                    return rd.getCriticality();
+                case 6:
 				/*if (rd.getRequirementType() == 1) {
 					return rd.getViolatedAction();
 				} else {
 					return " - ";
 				}*/
-				return " - ";
-			case 7:
-				return rd.getAttackTreeNode();
-			case 8:
-				if (rd.isVerified()) {
-					if (rd.isSatisfied()) {
-						return "yes";
-					} else {
-						return "no";
-					}
-				} else {
-					return "-";
-				}
-			case 9:
-				return rd.getReferenceElements();
-			}
-		
-		}
-		
-		return "Invalid column";
-		
-	}
-	
-	public String getColumnName(int columnIndex) {
-		int index = pts[columnIndex].x;
-		
-		return JDialogRequirementTable.items[index];
+                    return " - ";
+                case 7:
+                    return rd.getAttackTreeNode();
+                case 8:
+                    if (rd.isVerified()) {
+                        if (rd.isSatisfied()) {
+                            return "yes";
+                        } else {
+                            return "no";
+                        }
+                    } else {
+                        return "-";
+                    }
+                case 9:
+                    return rd.getReferenceElements();
+                case 10:
+                    return rd.getExtraAttributes();
+                case 11:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringOfAllPropertiesVerified();
+                case 12:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringOfAllElementsSatisfied();
+                case 13:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringOfAllImmediateSons();
+                case 14:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringOfAllSons();
+                case 15:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringOfAllImmediateFathers();
+                case 16:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringOfAllFathers();
+                case 17:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringAllMeRefineOrigin();
+                case 18:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringAllMeRefineDestination();
+                case 19:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringAllMeDeriveOrigin();
+                case 20:
+                    //TraceManager.addDev("Getting Info on properties in rd=" + rd);
+                    return rd.getStringAllMeDeriveDestination();
+            }
+
+        }
+
+        return "Invalid column";
+
+    }
+
+    public String getColumnName(int columnIndex) {
+        int index = pts[columnIndex].x;
+
+        return JDialogRequirementTable.items[index];
 		
 		/*switch(columnIndex) {
 		case 0:
@@ -212,7 +261,7 @@ public class RequirementsTableModel extends AbstractTableModel {
 		case 8:
 		return "Satisfied";
 		}*/
-		//return "none";
-	}
-	
+        //return "none";
+    }
+
 }
\ No newline at end of file
diff --git a/src/main/java/ui/window/StatisticsItem.java b/src/main/java/ui/window/StatisticsItem.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/StatisticsTableModel.java b/src/main/java/ui/window/StatisticsTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/SwitchesNCTableModel.java b/src/main/java/ui/window/SwitchesNCTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/TMatrixTableModel.java b/src/main/java/ui/window/TMatrixTableModel.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/TabInfo.java b/src/main/java/ui/window/TabInfo.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/TraceData.java b/src/main/java/ui/window/TraceData.java
old mode 100755
new mode 100644
diff --git a/src/main/java/ui/window/TrafficsNCTableModel.java b/src/main/java/ui/window/TrafficsNCTableModel.java
old mode 100755
new mode 100644
diff --git a/ttool/src/main/java/Main.java b/ttool/src/main/java/Main.java
index 2305375662df490fccf3a7613f8b11d98a7c0a67..734848f695291730d546a81026ef98bf95dcfa91 100755
--- a/ttool/src/main/java/Main.java
+++ b/ttool/src/main/java/Main.java
@@ -322,8 +322,8 @@ public class Main implements ActionListener {
         }
 
         // Checking for update
-        TToolUpdater tu = new TToolUpdater(mainGUI.frame);
-        tu.start();
+        //TToolUpdater tu = new TToolUpdater(mainGUI.frame);
+        //tu.start();
     }
 
     public synchronized void waitFinish() {