diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java
index 354bd16f924f258c3ae942c34a401385a2088531..90308819a428f7fc9c3c7cc82ba246648ccf623f 100755
--- a/src/main/java/tmltranslator/TMLSyntaxChecking.java
+++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java
@@ -123,6 +123,9 @@ public class TMLSyntaxChecking {
 
             checkPortName();
 
+            //added by minh hiep
+            checkAValidPortName();
+
         }
 
         // Mapping or architecture
@@ -199,6 +202,28 @@ public class TMLSyntaxChecking {
         }
     }
 
+    //added by minh hiep
+    public void checkAValidPortName() {
+        List<TMLChannel> tmlChannels = tmlm.getChannels();
+        List<TMLEvent> tmlEvents = tmlm.getEvents();
+        List<TMLRequest> tmlRequests = tmlm.getRequests();
+
+        for (TMLChannel channel : tmlChannels) {
+            if (!TMLTextSpecification.isAValidId(channel.getName()))
+                addError(null, null, WRONG_VARIABLE_IDENTIFIER + ": invalid port name", TMLError.ERROR_STRUCTURE);
+        }
+
+        for (TMLEvent event : tmlEvents) {
+            if (!TMLTextSpecification.isAValidId(event.getName()))
+                addError(null, null, WRONG_VARIABLE_IDENTIFIER + ": invalid port name", TMLError.ERROR_STRUCTURE);
+        }
+
+        for (TMLRequest request: tmlRequests) {
+            if (!TMLTextSpecification.isAValidId(request.getName()))
+                addError(null, null, WRONG_VARIABLE_IDENTIFIER + ": invalid port name", TMLError.ERROR_STRUCTURE);
+        }
+    }
+
     public void checkPortName() {
         // checks if two ports with the same type (origin, destination) have the same name
         HashMap<String, TMLPort> origin = new HashMap<String, TMLPort>();
@@ -387,7 +412,6 @@ public class TMLSyntaxChecking {
                 }
             }
 
-
             int n = tactivity.nElements();
             //TraceManager.addDev("Task" + t.getName());
             for (int i = 0; i < n; i++) {
diff --git a/src/main/java/ui/TAttribute.java b/src/main/java/ui/TAttribute.java
index f5ff90c3033cd4c06f893dc7b1a4effc22385d2c..498e4155be691e320989b578552300a0e91bba2e 100644
--- a/src/main/java/ui/TAttribute.java
+++ b/src/main/java/ui/TAttribute.java
@@ -226,6 +226,23 @@ public class TAttribute {
         return (b1 && b2 && b3 && b4 && b5 && b6 && b7);
     }
 
+    //checking port name
+    //author : minh hiep
+    public static boolean isAValidPortName(String id, boolean checkKeyword, boolean checkUPPAALKeyword, boolean checkJavaKeyword,
+                                           boolean checkTMLKeyword) {
+        // test whether _id is a word
+        if (id.contains(",")) {
+            String [] splitName = id.split("\\s*,\\s*");
+            for (int i = 0; i < splitName.length; i ++) {
+                if(!isAValidId(splitName[i],checkKeyword,checkUPPAALKeyword, checkJavaKeyword,checkTMLKeyword)) {
+                    return false;
+                }
+            }
+        }else {
+            return isAValidId(id,checkKeyword,checkUPPAALKeyword, checkJavaKeyword,checkTMLKeyword);
+        }
+        return  true;
+    }
     public static boolean isAValidInitialValue(int type, String value) {
         //boolean b;
         int val;
diff --git a/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java b/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java
index 29cbe118e509cfcdf5b552507bba79423467f377..63f8c97269b324d70d34504965d6c7eacd60f349 100755
--- a/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java
+++ b/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java
@@ -73,6 +73,8 @@ import ui.interactivesimulation.JFrameSimulationSDPanel;
 
 import javax.swing.*;
 import java.awt.*;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Vector;
 
 /**
@@ -159,6 +161,7 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent
 
 
     public int verification;
+    public String oldName;
     
     public TMLCPrimitivePort(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);
@@ -610,6 +613,9 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent
         TraceManager.addDev( "The Data flow type is: " + dataFlowType );
         TraceManager.addDev( "The Associated event is: " + associatedEvent );
 
+        oldName = getPortName();
+        //TraceManager.addDev("old port name : " + oldName);
+
         if (jda.hasNewData()) {
             try {
                 maxSamples = Integer.decode(jda.getMaxSamples()).intValue();
@@ -622,8 +628,39 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent
                 isOrigin = jda.isOrigin();
                 isFinite = jda.isFinite();
                 isBlocking = jda.isBlocking();
-                setPortName(jda.getParamName());
-                commName = jda.getParamName();
+
+                /* is port name valid ?
+                 * author : minh hiep
+                 */
+                String s = jda.getParamName();
+                //TraceManager.addDev("port name : " + s);
+
+                if ((s != null) && (s.length() > 0)) {
+                    // Check whether this name is already in use, or not
+
+                    if (!TAttribute.isAValidPortName(s, false, true, false,false)) {
+                        JOptionPane.showMessageDialog(frame,
+                                "Could not change the name of the port: the new name (" + s + ")  is not a valid name",
+                                "Error",
+                                JOptionPane.INFORMATION_MESSAGE);
+                        return false;
+                    }
+
+                    if (oldName.compareTo(s) != 0) {
+                        if (((TMLComponentTaskDiagramPanel) tdp).namePrimitivePortInUse(this, s)) {
+                            JOptionPane.showMessageDialog(frame,
+                                    "Error: the name (" + s + ")  is already in use",
+                                    "Name modification",
+                                    JOptionPane.ERROR_MESSAGE);
+                            return false;
+                        }
+                    }
+                    setPortName(s);
+                    commName = s;
+                }
+
+                //setPortName(jda.getParamName());
+                //commName = jda.getParamName();
                 isLossy = jda.isLossy();
                 lossPercentage = jda.getLossPercentage();
                 maxNbOfLoss = jda.getMaxNbOfLoss();
@@ -807,7 +844,20 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent
                             }
 
                             if (elt.getTagName().equals("Prop")) {
-                                commName = elt.getAttribute("commName");
+                                // checking the valid port name
+                                oldName = getPortName();
+                                String s = elt.getAttribute("commName");
+                                //TraceManager.addDev("port name : " + s);
+
+                                if ((s != null) && (s.length() > 0)) {
+                                    // Check whether this name is already in use, or not
+
+                                    if (!TAttribute.isAValidPortName(s, false, true, false,false)) {
+                                        throw new MalformedModelingException();
+                                    }
+
+                                    commName = s;
+                                }
                                 try {
                                     //
                                     typep = Integer.decode(elt.getAttribute("commType")).intValue();
@@ -1149,7 +1199,4 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent
             typePort = 2;
         return typePort;
     }
-
-
-
 }
diff --git a/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java b/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java
index 6bff4804513d6b57b5b737269471195772b21e89..d67cda68855a90ebb9a4c44adbe7b58590d3b9f4 100755
--- a/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java
+++ b/src/main/java/ui/tmlcompd/TMLComponentTaskDiagramPanel.java
@@ -213,6 +213,43 @@ public class TMLComponentTaskDiagramPanel extends TDiagramPanel implements TDPWi
         return false;
     }
 
+    /* method created for checking valid port name
+     * author : minh hiep
+     * */
+    public boolean namePrimitivePortInUse(TMLCPrimitivePort tmlcpp, String newName) {
+        List<TMLCPrimitiveComponent> pcompList = getPrimitiveComponentList();
+        List<TMLCPrimitivePort> originPPorts = new ArrayList<>();
+        List<TMLCPrimitivePort> destinationPPorts = new ArrayList<>();
+
+        for (TMLCPrimitiveComponent tmlcpc : pcompList) {
+            originPPorts.addAll(tmlcpc.getAllChannelsOriginPorts());
+            originPPorts.addAll(tmlcpc.getAllEventsOriginPorts());
+            originPPorts.addAll(tmlcpc.getAllRequestsOriginPorts());
+        }
+
+        for (TMLCPrimitiveComponent tmlcpc : pcompList) {
+            destinationPPorts.addAll(tmlcpc.getAllChannelsDestinationPorts());
+            destinationPPorts.addAll(tmlcpc.getAllEventsDestinationPorts());
+            destinationPPorts.addAll(tmlcpc.getAllRequestsDestinationPorts());
+        }
+
+        if (tmlcpp.isOrigin) {
+            for (TMLCPrimitivePort op : originPPorts) {
+                if (op.getPortName().equalsIgnoreCase(newName)) {
+                    return true;
+                }
+            }
+        }else {
+            for (TMLCPrimitivePort dp : destinationPPorts) {
+                if (dp.getPortName().equalsIgnoreCase(newName)) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+
     public List<TMLCRecordComponent> getRecordComponentList() {
         List<TMLCRecordComponent> ll = new LinkedList<TMLCRecordComponent>();
         TGComponent tgc;
diff --git a/ttool/src/test/java/ui/tmlcompd/TMLCPrimitivePortTest.java b/ttool/src/test/java/ui/tmlcompd/TMLCPrimitivePortTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..4a659eb9fa51c626c4e7402102d5b0716353ad67
--- /dev/null
+++ b/ttool/src/test/java/ui/tmlcompd/TMLCPrimitivePortTest.java
@@ -0,0 +1,165 @@
+package ui.tmlcompd;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import tmltranslator.TMLSyntaxChecking;
+import tmltranslator.TMLTextSpecification;
+import ui.*;
+import java.io.File;
+
+import static org.junit.Assert.*;
+
+public class TMLCPrimitivePortTest extends AbstractUITest {
+    static TDiagramPanel diagramPanel;
+    static TMLCChannelOutPort eventPortIn;
+    static TMLCChannelOutPort channelPortIn;
+    static TMLCChannelOutPort requestPortIn;
+
+    static TMLCChannelOutPort eventPortOut;
+    static TMLCChannelOutPort channelPortOut;
+    static TMLCChannelOutPort requestPortOut;
+
+    static TMLCPrimitiveComponent primitiveComponent1;
+    static TMLCPrimitiveComponent primitiveComponent2;
+    final String VALID_NAME_1    = "valid_name";
+    final String VALID_NAME_2   = "valid_name_1, valid_name_2, valid_name_3";
+    final String INVALID_NAME_1   = "1_name"; //name begins by number
+    final String INVALID_NAME_2   = "name 2"; // name with whitespace
+    final String INVALID_NAME_3  = "clock"; //one of UPPAAL keywords
+    final String INVALID_NAME_4  = "name?"; //name with specialized characters
+    final String INVALID_NAME_5 = "";
+    final String INVALID_NAME_6   = "protected"; //one of java keywords
+    final String INVALID_NAME_7  = "exit"; //one of RTLOTOS keywords
+    final String INVALID_NAME_8   = "Natural"; //one of String type
+    final String INVALID_NAME_9   = "ENDTASK"; // one of TMLkeywords
+    final String INVALID_NAME_10   = "name1, 2name, name3"; //fault at "2name"
+
+    final String CHANNEL_IN = "channel_in";
+    final String CHANNEL_OUT = "channel_out";
+    final String EVENT_IN = "event_in";
+    final String EVENT_OUT = "event_out";
+    final String REQUEST_IN = "request_in";
+    final String REQUEST_OUT = "request_out";
+
+
+
+
+    @BeforeClass
+    public static void setUpBeforeClass() throws Exception {
+        RESOURCES_DIR = getBaseResourcesDir() + "/ui/tmlcompd/input/TestPortName.xml";
+        //RESOURCES_DIR = "/home/pham/Documents/TToolDev/TTool/ttool/src/test/resources/ui/tmlcompd/input/TestPortName.xml";
+
+    }
+
+    public TMLCPrimitivePortTest() {
+        super();
+        mainGUI.openProjectFromFile(new File(RESOURCES_DIR));
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        diagramPanel = null;
+        for(TURTLEPanel _tab : mainGUI.getTabs()) {
+            if(_tab instanceof TMLComponentDesignPanel) {
+                for (TDiagramPanel tdp : _tab.getPanels()) {
+                    if (tdp instanceof  TMLComponentTaskDiagramPanel) {
+                        diagramPanel = tdp;
+                        mainGUI.selectTab(tdp);
+                        break;
+                    }
+                }
+                break;
+            }
+        }
+
+
+        for (TGComponent tgc : diagramPanel.getComponentList()) {
+            if (tgc.getValue().equals("CompositeComponent")) {
+                for (TMLCPrimitiveComponent tmlcpp : ((TMLCCompositeComponent) tgc).getAllPrimitiveComponents()) {
+                    if (tmlcpp.getValue().equals("PrimitiveComp1")) {
+                        primitiveComponent1 = tmlcpp;
+                    }
+                    if (tmlcpp.getValue().equals("PrimitiveComp2")) {
+                        primitiveComponent2 = tmlcpp;
+                    }
+                }
+            }
+        }
+
+
+        if (diagramPanel != null && primitiveComponent1 != null && primitiveComponent2 != null) {
+            eventPortOut = new TMLCChannelOutPort(509, 672, -13, 187, -13, 583,true, primitiveComponent1, diagramPanel);
+            eventPortOut.isOrigin = true;
+            eventPortOut.typep = 1;
+            eventPortIn = new TMLCChannelOutPort(708, 694, -13, 187, -13, 578,true, primitiveComponent2, diagramPanel);
+            eventPortIn.isOrigin = false;
+            eventPortIn.typep = 1;
+
+            channelPortOut = new TMLCChannelOutPort(509, 625, -13, 187, -13, 583,true, primitiveComponent1, diagramPanel);
+            channelPortOut.isOrigin = true;
+            channelPortOut.typep = 0;
+            channelPortIn = new TMLCChannelOutPort(708, 630, -13, 187, -13, 578,true, primitiveComponent2, diagramPanel);
+            channelPortIn.isOrigin = false;
+            channelPortIn.typep = 0;
+
+            requestPortOut = new TMLCChannelOutPort(509, 730, -13, 187, -13, 583,true, primitiveComponent1, diagramPanel);
+            requestPortOut.isOrigin = true;
+            requestPortOut.typep = 2;
+            requestPortIn = new TMLCChannelOutPort(708, 747, -13, 187, -13, 578,true, primitiveComponent2, diagramPanel);
+            requestPortIn.isOrigin = false;
+            requestPortIn.typep = 2;
+        }
+    }
+
+
+    @Test
+    public void testEventPortName() throws Exception {
+        assertTrue("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(eventPortIn,EVENT_IN));
+        assertTrue("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(eventPortOut,EVENT_OUT));
+        assertFalse("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(eventPortOut,EVENT_IN));
+        assertFalse("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(eventPortIn,EVENT_OUT));
+    }
+
+    @Test
+    public void testChannelPortName() throws Exception {
+        assertTrue("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(channelPortIn,CHANNEL_IN));
+        assertTrue("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(channelPortOut,CHANNEL_OUT));
+        assertFalse("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(channelPortOut,CHANNEL_IN));
+        assertFalse("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(channelPortIn,CHANNEL_OUT));
+    }
+
+    @Test
+    public void tesRequestPortName() throws Exception {
+        assertTrue("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(requestPortIn,EVENT_IN));
+        assertTrue("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(requestPortOut,EVENT_OUT));
+        assertFalse("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(requestPortOut,REQUEST_IN));
+        assertFalse("Test : Port name in use",((TMLComponentTaskDiagramPanel) diagramPanel).namePrimitivePortInUse(requestPortIn,REQUEST_OUT));
+    }
+
+    @Test
+    public void testIsAValidName()throws  Exception {
+        assertTrue("valid name",TAttribute.isAValidPortName(VALID_NAME_1,true,true, true,true));
+        assertTrue("valid name",TAttribute.isAValidPortName(VALID_NAME_2,true,true, true,true));
+        assertFalse("name begins by number",TAttribute.isAValidPortName(INVALID_NAME_1,true,true, true,true));
+        assertFalse("name with whitespace",TAttribute.isAValidPortName(INVALID_NAME_2,true,true, true,true));
+        assertFalse("UPPAAL keyword",TAttribute.isAValidPortName(INVALID_NAME_3,false,true, false,false));
+        assertFalse("name with specialized character",TAttribute.isAValidPortName(INVALID_NAME_4,true,true, true,true));
+        assertFalse("empty name",TAttribute.isAValidPortName(INVALID_NAME_5,true,true, true,true));
+        assertFalse("java keyword",TAttribute.isAValidPortName(INVALID_NAME_6,false,false, true,false));
+        assertFalse("RTLOTOS keyword",TAttribute.isAValidPortName(INVALID_NAME_7,true,false, false,false));
+        assertFalse("String type",TAttribute.isAValidPortName(INVALID_NAME_8,true,true, true,true));
+        assertFalse("TML keyword",TAttribute.isAValidPortName(INVALID_NAME_9,false,false, false,true));
+        assertFalse("fault at one of the port names",TAttribute.isAValidPortName(INVALID_NAME_10,true,true, true,true));
+    }
+
+    @Test
+    public void testIsAvalidId() throws Exception {
+        assertFalse("name begins by number",TMLTextSpecification.isAValidId(INVALID_NAME_1));
+        assertFalse("name with whitespace",TMLTextSpecification.isAValidId(INVALID_NAME_2));
+        assertFalse("name with specialized character",TMLTextSpecification.isAValidId(INVALID_NAME_4));
+        assertFalse("empty name",TMLTextSpecification.isAValidId(INVALID_NAME_5));
+        assertFalse("TML keyword",TMLTextSpecification.isAValidId(INVALID_NAME_9));
+        assertTrue("valid name",TMLTextSpecification.isAValidId(VALID_NAME_1));
+    }
+}
\ No newline at end of file
diff --git a/ttool/src/test/resources/ui/tmlcompd/input/TestPortName.xml b/ttool/src/test/resources/ui/tmlcompd/input/TestPortName.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cb637a74e21458b52b754fed56f5a48868be53e7
--- /dev/null
+++ b/ttool/src/test/resources/ui/tmlcompd/input/TestPortName.xml
@@ -0,0 +1,612 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<TURTLEGMODELING version="1.0beta">
+
+<Modeling type="TML Component Design" nameTab="DIPLODOCUS_C_Design" >
+<TMLComponentTaskDiagramPanel name="TML Component Task Diagram" minX="10" maxX="2500" minY="10" maxY="1500" channels="true" events="true" requests="true" zoom="1.0" >
+<CONNECTOR type="126" id="1" >
+<cdparam x="535" y="658" />
+<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="535" y="557" id="38" />
+<P2  x="708" y="557" id="17" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="2" >
+<cdparam x="535" y="593" />
+<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="535" y="492" id="36" />
+<P2  x="708" y="492" id="15" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="3" >
+<cdparam x="535" y="526" />
+<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="535" y="414" id="34" />
+<P2  x="708" y="413" id="13" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="4" >
+<cdparam x="449" y="468" />
+<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="535" y="356" id="32" />
+<P2  x="708" y="356" id="11" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="5" >
+<cdparam x="878" y="469" />
+<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="535" y="317" id="30" />
+<P2  x="708" y="317" id="9" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="126" id="6" >
+<cdparam x="1021" y="460" />
+<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="708" y="268" id="7" />
+<P2  x="535" y="268" id="28" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<COMPONENT type="1200" id="63" >
+<cdparam x="294" y="149" />
+<sizeparam width="672" height="717" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Composite component" value="CompositeComponent" />
+<TGConnectingPoint num="0" id="55" />
+<TGConnectingPoint num="1" id="56" />
+<TGConnectingPoint num="2" id="57" />
+<TGConnectingPoint num="3" id="58" />
+<TGConnectingPoint num="4" id="59" />
+<TGConnectingPoint num="5" id="60" />
+<TGConnectingPoint num="6" id="61" />
+<TGConnectingPoint num="7" id="62" />
+<extraparam>
+<info hiddeni="false" />
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="1202" id="27" >
+<father id="63" num="0" />
+<cdparam x="721" y="220" />
+<sizeparam width="200" height="591" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="126" />
+<infoparam name="Primitive component" value="PrimitiveComp2" />
+<TGConnectingPoint num="0" id="19" />
+<TGConnectingPoint num="1" id="20" />
+<TGConnectingPoint num="2" id="21" />
+<TGConnectingPoint num="3" id="22" />
+<TGConnectingPoint num="4" id="23" />
+<TGConnectingPoint num="5" id="24" />
+<TGConnectingPoint num="6" id="25" />
+<TGConnectingPoint num="7" id="26" />
+<extraparam>
+<Data isAttacker="No" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="8" >
+<father id="27" num="0" />
+<cdparam x="708" y="255" />
+<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="578" />
+<infoparam name="Primitive port" value="Channel channel_in" />
+<TGConnectingPoint num="0" id="7" />
+<extraparam>
+<Prop commName="channel_in" commType="0" 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="10" >
+<father id="27" num="1" />
+<cdparam x="708" y="304" />
+<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="578" />
+<infoparam name="Primitive port" value="Event event_in" />
+<TGConnectingPoint num="0" id="9" />
+<extraparam>
+<Prop commName="event_in" 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="12" >
+<father id="27" num="2" />
+<cdparam x="708" y="343" />
+<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="578" />
+<infoparam name="Primitive port" value="Request request_in" />
+<TGConnectingPoint num="0" id="11" />
+<extraparam>
+<Prop commName="request_in" commType="2" 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="14" >
+<father id="27" num="3" />
+<cdparam x="708" y="400" />
+<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="578" />
+<infoparam name="Primitive port" value="Channel channel_in_1" />
+<TGConnectingPoint num="0" id="13" />
+<extraparam>
+<Prop commName="channel_in_1" commType="0" 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="16" >
+<father id="27" num="4" />
+<cdparam x="708" y="479" />
+<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="578" />
+<infoparam name="Primitive port" value="Event event_in_1" />
+<TGConnectingPoint num="0" id="15" />
+<extraparam>
+<Prop commName="event_in_1" 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="18" >
+<father id="27" num="5" />
+<cdparam x="708" y="544" />
+<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="578" />
+<infoparam name="Primitive port" value="Request request_in_1" />
+<TGConnectingPoint num="0" id="17" />
+<extraparam>
+<Prop commName="request_in_1" commType="2" 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="54" >
+<father id="63" num="1" />
+<cdparam x="322" y="221" />
+<sizeparam width="200" height="596" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="472" minY="0" maxY="121" />
+<infoparam name="Primitive component" value="PrimitiveComp1" />
+<TGConnectingPoint num="0" id="46" />
+<TGConnectingPoint num="1" id="47" />
+<TGConnectingPoint num="2" id="48" />
+<TGConnectingPoint num="3" id="49" />
+<TGConnectingPoint num="4" id="50" />
+<TGConnectingPoint num="5" id="51" />
+<TGConnectingPoint num="6" id="52" />
+<TGConnectingPoint num="7" id="53" />
+<extraparam>
+<Data isAttacker="No" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="29" >
+<father id="54" num="0" />
+<cdparam x="509" y="255" />
+<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="583" />
+<infoparam name="Primitive port" value="Channel channel_out" />
+<TGConnectingPoint num="0" id="28" />
+<extraparam>
+<Prop commName="channel_out" commType="0" origin="true" 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="31" >
+<father id="54" num="1" />
+<cdparam x="509" y="304" />
+<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="583" />
+<infoparam name="Primitive port" value="Event event_out" />
+<TGConnectingPoint num="0" id="30" />
+<extraparam>
+<Prop commName="event_out" 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="33" >
+<father id="54" num="2" />
+<cdparam x="509" y="343" />
+<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="583" />
+<infoparam name="Primitive port" value="Request request_out" />
+<TGConnectingPoint num="0" id="32" />
+<extraparam>
+<Prop commName="request_out" commType="2" 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>
+<SUBCOMPONENT type="1203" id="35" >
+<father id="54" num="3" />
+<cdparam x="509" y="401" />
+<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="583" />
+<infoparam name="Primitive port" value="Channel channel_in_1" />
+<TGConnectingPoint num="0" id="34" />
+<extraparam>
+<Prop commName="channel_in_1" commType="0" origin="true" 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="37" >
+<father id="54" num="4" />
+<cdparam x="509" y="479" />
+<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="583" />
+<infoparam name="Primitive port" value="Event event_out_1" />
+<TGConnectingPoint num="0" id="36" />
+<extraparam>
+<Prop commName="event_out_1" 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="39" >
+<father id="54" num="5" />
+<cdparam x="509" y="544" />
+<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="583" />
+<infoparam name="Primitive port" value="Request request_out_1" />
+<TGConnectingPoint num="0" id="38" />
+<extraparam>
+<Prop commName="request_out_1" commType="2" 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>
+
+
+</TMLComponentTaskDiagramPanel>
+
+<TMLActivityDiagramPanel name="PrimitiveComp1" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="65" >
+<cdparam x="397" y="440" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="64" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="67" >
+<cdparam x="302" y="444" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="66" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="70" >
+<cdparam x="271" y="326" />
+<sizeparam width="82" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="send event" value="event_out()" />
+<TGConnectingPoint num="0" id="68" />
+<TGConnectingPoint num="1" id="69" />
+<extraparam>
+<Data eventName="event_out" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1006" id="73" >
+<cdparam x="355" y="324" />
+<sizeparam width="105" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="write channel" value="channel_out(1)" />
+<TGConnectingPoint num="0" id="71" />
+<TGConnectingPoint num="1" id="72" />
+<extraparam>
+<Data channelName="channel_out" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1012" id="81" >
+<cdparam x="392" y="183" />
+<sizeparam width="30" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="77" />
+<TGConnectingPoint num="1" id="78" />
+<TGConnectingPoint num="2" id="79" />
+<TGConnectingPoint num="3" id="80" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="74" >
+<father id="81" num="0" />
+<cdparam x="367" y="193" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" 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="75" >
+<father id="81" num="1" />
+<cdparam x="427" y="193" />
+<sizeparam width="14" height="15" minWidth="10" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="76" >
+<father id="81" num="2" />
+<cdparam x="412" y="228" />
+<sizeparam width="14" height="15" minWidth="10" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="83" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" 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="82" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="85" >
+<cdparam x="367" y="198" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="367" y="198" id="78" />
+<P2  x="312" y="321" id="68" />
+<Point x="312" y="198" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="84" >
+<father id="85" num="0" />
+<cdparam x="312" y="198" />
+<sizeparam width="1" height="1" minWidth="1" minHeight="1" 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="115" id="86" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="82" />
+<P2  x="407" y="173" id="77" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="87" >
+<cdparam x="407" y="238" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="238" id="80" />
+<P2  x="407" y="319" id="71" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="88" >
+<cdparam x="312" y="351" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="312" y="351" id="69" />
+<P2  x="312" y="439" id="66" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="89" >
+<cdparam x="407" y="349" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="349" id="72" />
+<P2  x="407" y="435" id="64" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="PrimitiveComp2" minX="10" maxX="2500" minY="10" maxY="1500" >
+<COMPONENT type="1001" id="91" >
+<cdparam x="520" y="416" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="90" />
+</COMPONENT>
+
+<COMPONENT type="1001" id="93" >
+<cdparam x="397" y="418" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="92" />
+</COMPONENT>
+
+<COMPONENT type="1010" id="96" >
+<cdparam x="492" y="302" />
+<sizeparam width="76" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="wait event" value="event_in() " />
+<TGConnectingPoint num="0" id="94" />
+<TGConnectingPoint num="1" id="95" />
+<extraparam>
+<Data eventName="event_in" nbOfParams="5" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1009" id="99" >
+<cdparam x="358" y="296" />
+<sizeparam width="99" height="20" minWidth="30" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<enabled value="true" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="read channel" value="channel_in(1) " />
+<TGConnectingPoint num="0" id="97" />
+<TGConnectingPoint num="1" id="98" />
+<extraparam>
+<Data channelName="channel_in" nbOfSamples="1" secPattern="" isAttacker="No" isEncForm="Yes" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1012" id="107" >
+<cdparam x="392" y="175" />
+<sizeparam width="30" height="30" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="choice" value="null" />
+<TGConnectingPoint num="0" id="103" />
+<TGConnectingPoint num="1" id="104" />
+<TGConnectingPoint num="2" id="105" />
+<TGConnectingPoint num="3" id="106" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="100" >
+<father id="107" num="0" />
+<cdparam x="367" y="185" />
+<sizeparam width="14" height="15" minWidth="10" minHeight="1" 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="101" >
+<father id="107" num="1" />
+<cdparam x="427" y="185" />
+<sizeparam width="14" height="15" minWidth="10" 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="[ ]" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="-1" id="102" >
+<father id="107" num="2" />
+<cdparam x="412" y="220" />
+<sizeparam width="14" height="15" minWidth="10" 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="[ ]" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1000" id="109" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="1" minHeight="1" 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="108" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="111" >
+<cdparam x="447" y="190" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="447" y="190" id="105" />
+<P2  x="530" y="297" id="94" />
+<Point x="530" y="190" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="110" >
+<father id="111" num="0" />
+<cdparam x="530" y="190" />
+<sizeparam width="1" height="1" minWidth="1" minHeight="1" 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="115" id="112" >
+<cdparam x="407" y="65" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="65" id="108" />
+<P2  x="407" y="165" id="103" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="113" >
+<cdparam x="407" y="230" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="230" id="106" />
+<P2  x="407" y="291" id="97" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="114" >
+<cdparam x="407" y="321" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="321" id="98" />
+<P2  x="407" y="413" id="92" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="115" >
+<cdparam x="530" y="327" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="530" y="327" id="95" />
+<P2  x="530" y="411" id="90" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+</Modeling>
+
+
+
+
+</TURTLEGMODELING>
\ No newline at end of file