<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:RTCppProperties="http://www.eclipse.org/papyrus/umlrt/cppproperties" xmlns:UMLRTStateMachines="http://www.eclipse.org/papyrus/umlrt/statemachine" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
  <uml:Model xmi:id="_0vhJYNq9EeahI77Vg4Dl9Q" name="CarDoorLock">
    <eAnnotations xmi:id="_R8398NrKEeahI77Vg4Dl9Q" source="UMLRT_Default_top">
      <details xmi:id="_R84lANrKEeahI77Vg4Dl9Q" key="top_name" value="Car"/>
    </eAnnotations>
    <eAnnotations xmi:id="_DsXVUErQEemeHdHRr5HQVw" source="dummy"/>
    <eAnnotations xmi:id="_TwolAEriEem6w_KDUcrxJA" source="dummy"/>
    <eAnnotations xmi:id="_6D8C4EsZEemCpoQtZEkFDQ" source="dummy"/>
    <eAnnotations xmi:id="_WN__oEvwEemcLvyKtpyj5A" source="dummy"/>
    <eAnnotations xmi:id="_DKEjQEwSEemqwubzGVKiEA" source="dummy"/>
    <eAnnotations xmi:id="_rZlOIExUEemXXJKmeOazaA" source="dummy"/>
    <eAnnotations xmi:id="_2ZmskEyBEem3NrnpZXMXQA" source="dummy"/>
    <packagedElement xmi:type="uml:Class" xmi:id="_iSbRENq_EeahI77Vg4Dl9Q" name="Car" isActive="true">
      <ownedAttribute xmi:id="_GVbv0NrBEeahI77Vg4Dl9Q" name="door1" visibility="protected" type="_ls0UUNq_EeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SnJA8NrgEeal5dJZNvUqew" value="1"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Sm8zsNrgEeal5dJZNvUqew" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="_LNSPkNrBEeahI77Vg4Dl9Q" name="centralLock" visibility="protected" type="_s7aB8Nq_EeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite"/>
      <ownedAttribute xmi:id="_V8mg4NrgEeal5dJZNvUqew" name="door2" visibility="protected" type="_ls0UUNq_EeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite"/>
      <ownedAttribute xmi:id="_5AKKQNrgEeal5dJZNvUqew" name="door3" visibility="protected" type="_ls0UUNq_EeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite"/>
      <ownedAttribute xmi:id="_AVcVwNrhEeal5dJZNvUqew" name="door4" visibility="protected" type="_ls0UUNq_EeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite"/>
      <ownedAttribute xmi:id="_02uPkEr3Eem5a-bhX4Z1zw" name="dbgAgent" type="_0n7loEr3Eem5a-bhX4Z1zw">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_02wEwEr3Eem5a-bhX4Z1zw" value="1"/>
        <upperValue xmi:type="uml:LiteralInteger" xmi:id="_02wr0Er3Eem5a-bhX4Z1zw" value="1"/>
      </ownedAttribute>
      <ownedConnector xmi:id="_U4X_YNrCEeahI77Vg4Dl9Q" name="RTConnector1">
        <end xmi:id="_U4YmcNrCEeahI77Vg4Dl9Q" partWithPort="_LNSPkNrBEeahI77Vg4Dl9Q" role="_k3gyENrBEeahI77Vg4Dl9Q"/>
        <end xmi:id="_U4ZNgNrCEeahI77Vg4Dl9Q" partWithPort="_GVbv0NrBEeahI77Vg4Dl9Q" role="_-jLfANrBEeahI77Vg4Dl9Q"/>
      </ownedConnector>
      <ownedConnector xmi:id="_bwP6gNrgEeal5dJZNvUqew" name="RTConnector2">
        <end xmi:id="_bwRvsNrgEeal5dJZNvUqew" partWithPort="_LNSPkNrBEeahI77Vg4Dl9Q" role="_k3gyENrBEeahI77Vg4Dl9Q"/>
        <end xmi:id="_bwRvsdrgEeal5dJZNvUqew" partWithPort="_V8mg4NrgEeal5dJZNvUqew" role="_-jLfANrBEeahI77Vg4Dl9Q"/>
      </ownedConnector>
      <ownedConnector xmi:id="_-3w20NrgEeal5dJZNvUqew" name="RTConnector3">
        <end xmi:id="_-3ysANrgEeal5dJZNvUqew" partWithPort="_LNSPkNrBEeahI77Vg4Dl9Q" role="_k3gyENrBEeahI77Vg4Dl9Q"/>
        <end xmi:id="_-3zTENrgEeal5dJZNvUqew" partWithPort="_5AKKQNrgEeal5dJZNvUqew" role="_-jLfANrBEeahI77Vg4Dl9Q"/>
      </ownedConnector>
      <ownedConnector xmi:id="_EUhacNrhEeal5dJZNvUqew" name="RTConnector4">
        <end xmi:id="_EUjPoNrhEeal5dJZNvUqew" partWithPort="_LNSPkNrBEeahI77Vg4Dl9Q" role="_k3gyENrBEeahI77Vg4Dl9Q"/>
        <end xmi:id="_EUjPodrhEeal5dJZNvUqew" partWithPort="_AVcVwNrhEeal5dJZNvUqew" role="_-jLfANrBEeahI77Vg4Dl9Q"/>
      </ownedConnector>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ls0UUNq_EeahI77Vg4Dl9Q" name="Door" isActive="true">
      <ownedAttribute xmi:id="_yAJcQNrBEeahI77Vg4Dl9Q" name="lock" visibility="protected" type="_xS9RANq_EeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zv8SANrZEeal5dJZNvUqew" value="1"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zvPucNrZEeal5dJZNvUqew" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_-jLfANrBEeahI77Vg4Dl9Q" name="lockPort" visibility="public" type="_LXKZwNrAEeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_f3zGENrdEeal5dJZNvUqew" value="1"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_f3ouANrdEeal5dJZNvUqew" value="1"/>
      </ownedAttribute>
      <ownedConnector xmi:id="_-n9H8NraEeal5dJZNvUqew" name="RTConnector1">
        <end xmi:id="_-oCngNraEeal5dJZNvUqew" role="_-jLfANrBEeahI77Vg4Dl9Q"/>
        <end xmi:id="_-oCngdraEeal5dJZNvUqew" partWithPort="_yAJcQNrBEeahI77Vg4Dl9Q" role="_WvH7ENrBEeahI77Vg4Dl9Q"/>
      </ownedConnector>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_xS9RANq_EeahI77Vg4Dl9Q" name="Lock" classifierBehavior="__KYzgNrCEeahI77Vg4Dl9Q" isActive="true">
      <ownedAttribute xmi:type="uml:Port" xmi:id="_WvH7ENrBEeahI77Vg4Dl9Q" name="lockPort" visibility="public" type="_LXKZwNrAEeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite" isBehavior="true">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-JnYYNrVEeaBAosuR3tfxw" value="1"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-JjG8NrVEeaBAosuR3tfxw" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_0z4W8Er3Eem5a-bhX4Z1zw" name="dbgPortForLock" visibility="protected" type="_0orMgEr3Eem5a-bhX4Z1zw" isBehavior="true" isService="false">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0z4-AEr3Eem5a-bhX4Z1zw" value="1"/>
        <upperValue xmi:type="uml:LiteralInteger" xmi:id="_0z5lEEr3Eem5a-bhX4Z1zw" value="1"/>
      </ownedAttribute>
      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="__KYzgNrCEeahI77Vg4Dl9Q" name="lockSM">
        <region xmi:id="_BAOTwNrDEeahI77Vg4Dl9Q" name="Region1">
          <transition xmi:id="_v7FiUNrDEeahI77Vg4Dl9Q" name="twiceLock" source="_FLMfYNrDEeahI77Vg4Dl9Q" target="_FLMfYNrDEeahI77Vg4Dl9Q">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_D3ixQNrmEeal5dJZNvUqew" name="replyTwiceUnlock">
              <language>C++</language>
              <body>    std::cout&lt;&lt;&quot;The Lock   &quot;&lt;&lt;this->borderPorts[0]->slotName()&lt;&lt;&quot;  is already unlocked&quot;&lt;&lt;std::endl;
    lockPort.lockStatus(false).send();
</body>
            </effect>
            <trigger xmi:id="_GTLJMNrFEeahI77Vg4Dl9Q" name="twiceLock" event="_XN1s0NrAEeahI77Vg4Dl9Q" port="_WvH7ENrBEeahI77Vg4Dl9Q"/>
          </transition>
          <transition xmi:id="_02EvUEr3Eem5a-bhX4Z1zw" name="Trans__Initial137" source="_Cz87MNrDEeahI77Vg4Dl9Q" target="_01_20Er3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_02mTwEr3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>initForPMD();
this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;Initial1&quot;,&quot;locked&quot;,&quot;To__locked__41&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;Initial1&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
          </transition>
          <transition xmi:id="_02LdAEr3Eem5a-bhX4Z1zw" name="From__locked__38" source="_FLMfYNrDEeahI77Vg4Dl9Q" target="_01_20Er3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_02hbQEr3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;locked&quot;,&quot;locked&quot;,&quot;To__locked__41&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;locked&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
            <trigger xmi:id="_02QVgEr3Eem5a-bhX4Z1zw" name="PME_Trig39" event="_Zlrt8NrAEeahI77Vg4Dl9Q" port="_WvH7ENrBEeahI77Vg4Dl9Q"/>
            <trigger xmi:id="_02Y4YEr3Eem5a-bhX4Z1zw" name="PME_Trig40" event="_0pXwEEr3Eem5a-bhX4Z1zw" port="_0z4W8Er3Eem5a-bhX4Z1zw"/>
          </transition>
          <transition xmi:id="_02eX8Er3Eem5a-bhX4Z1zw" name="To__locked__41" guard="_02p-IUr3Eem5a-bhX4Z1zw" source="_01_20Er3Eem5a-bhX4Z1zw" target="_FLMfYNrDEeahI77Vg4Dl9Q">
            <ownedRule xmi:id="_02p-IUr3Eem5a-bhX4Z1zw" name="PME_checkDecesion42">
              <specification xmi:type="uml:OpaqueExpression" xmi:id="_02p-IEr3Eem5a-bhX4Z1zw" name="PME_checkDecesion42">
                <language>C++</language>
                <body>return execContext.checkUserDecesion({&quot;To__locked__41&quot;,&quot;locked&quot;, execContext.getExecLocation().locName});
</body>
              </specification>
            </ownedRule>
          </transition>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_Cz87MNrDEeahI77Vg4Dl9Q" name="Initial1"/>
          <subvertex xmi:type="uml:State" xmi:id="_FLMfYNrDEeahI77Vg4Dl9Q" name="locked"/>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_01_20Er3Eem5a-bhX4Z1zw" name="DecesionPoint__36" kind="choice"/>
        </region>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_00pzAUr3Eem5a-bhX4Z1zw" name="loadHeap" specification="_00pzAEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body></body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_00wgsUr3Eem5a-bhX4Z1zw" name="unLoadHeap" specification="_00wgsEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body></body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_01Ge8Er3Eem5a-bhX4Z1zw" name="sendMessage" specification="_01F34Er3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>int result=-1;
 if(message.portName==&quot;lockPort&quot;) {
  if(message.signal==&quot;lockStatus&quot;) {
   if(message.payload.size()==1){
    lockPort.lockStatus( boost::any_cast&lt;bool>(message.payload[&quot;locked&quot;])).sendAt(message.index);
result=1;
}
  }
 }
return result;
</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_01Yy0Er3Eem5a-bhX4Z1zw" name="sendInternalMessage" specification="_01YLwEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>// will do it as next work</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_013T8Ur3Eem5a-bhX4Z1zw" name="initForPMD" specification="_013T8Er3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>execHelper.readExecConfig();
//this->execHelper.loadExecRules();
this->execContext.setCapsuleHeap(&amp;this->heap);
this->execContext.setCapsuleType(this->getTypeName());
this->execContext.setCapsuleInstanceID(this->getIndex());
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC, this->getCurrentStateString());
this->execContext.setCallBackMethodSendMessage(std::bind(&amp;Capsule_Lock::sendMessage, this,std::placeholders::_1));
this->execContext.setCallBackMethodSendInternalMessage(std::bind(&amp;Capsule_Lock::sendInternalMessage,this,std::placeholders::_1));
 this->execContext.addOutPutMessages(&quot;lockPort&quot;,&quot;lockStatus&quot;,{ {&quot;locked&quot;,&quot;Boolean&quot;}});
 this->execContext.addInputMessages(&quot;lockPort&quot;,&quot;unlock&quot;,{});
this->execContext.addInputMessages(&quot;lockPort&quot;,&quot;lock&quot;,{});
this->execContext.addInputMessages(&quot;dbgPortForLock&quot;,&quot;dbg&quot;,{});
</body>
      </ownedBehavior>
      <ownedOperation xmi:id="_00pzAEr3Eem5a-bhX4Z1zw" name="loadHeap" visibility="private" method="_00pzAUr3Eem5a-bhX4Z1zw"/>
      <ownedOperation xmi:id="_00wgsEr3Eem5a-bhX4Z1zw" name="unLoadHeap" visibility="private" method="_00wgsUr3Eem5a-bhX4Z1zw"/>
      <ownedOperation xmi:id="_01F34Er3Eem5a-bhX4Z1zw" name="sendMessage" visibility="private" method="_01Ge8Er3Eem5a-bhX4Z1zw">
        <ownedParameter xmi:id="_01LXcEr3Eem5a-bhX4Z1zw" name="message">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
        <ownedParameter xmi:id="_01SFIEr3Eem5a-bhX4Z1zw" name="result" direction="return">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_01YLwEr3Eem5a-bhX4Z1zw" name="sendInternalMessage" visibility="private" method="_01Yy0Er3Eem5a-bhX4Z1zw">
        <ownedParameter xmi:id="_01dEQEr3Eem5a-bhX4Z1zw" name="message">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
        <ownedParameter xmi:id="_01lAEEr3Eem5a-bhX4Z1zw" name="result" direction="return">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_013T8Er3Eem5a-bhX4Z1zw" name="initForPMD" visibility="private" method="_013T8Ur3Eem5a-bhX4Z1zw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_s7aB8Nq_EeahI77Vg4Dl9Q" name="CentralLock" classifierBehavior="_mTK68NrFEeahI77Vg4Dl9Q" isActive="true">
      <ownedAttribute xmi:type="uml:Port" xmi:id="_k3gyENrBEeahI77Vg4Dl9Q" name="lockPort" visibility="public" type="_LXKZwNrAEeahI77Vg4Dl9Q" isOrdered="true" aggregation="composite" isBehavior="true" isConjugated="true">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fVbt8NrfEeal5dJZNvUqew" value="4"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fVTyINrfEeal5dJZNvUqew" value="4"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_Cey60NrUEeaBAosuR3tfxw" name="startupTimer" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.common.rts.library_1.0.0.201707181445.jar!/libraries/UMLRT-RTS.uml#_MxQZgGXsEeS_4daqvwyFrg"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="_pzTr8NroEeal5dJZNvUqew" name="tmpInt">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_t1vmoNroEeal5dJZNvUqew" value="0"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="_u29zENroEeal5dJZNvUqew" name="locksCount">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_zKDY4NroEeal5dJZNvUqew" value="4"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_0q9EcEr3Eem5a-bhX4Z1zw" name="dbgPortForCentralLock" visibility="protected" type="_0orMgEr3Eem5a-bhX4Z1zw" isBehavior="true" isService="false">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0q9rgEr3Eem5a-bhX4Z1zw" value="1"/>
        <upperValue xmi:type="uml:LiteralInteger" xmi:id="_0q-5oEr3Eem5a-bhX4Z1zw" value="1"/>
      </ownedAttribute>
      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_mTK68NrFEeahI77Vg4Dl9Q" name="centralLockSM">
        <region xmi:id="_oPcaYNrFEeahI77Vg4Dl9Q" name="Region1">
          <transition xmi:id="_mrtE0NrHEeahI77Vg4Dl9Q" name="doorsOpen__WaitAllDoorBeClosed__1" source="_7a5GINrGEeahI77Vg4Dl9Q" target="_IcetINrHEeahI77Vg4Dl9Q">
            <trigger xmi:id="_ZbNNMNrJEeahI77Vg4Dl9Q" event="_NUfP0NrFEeahI77Vg4Dl9Q" port="_k3gyENrBEeahI77Vg4Dl9Q"/>
          </transition>
          <transition xmi:id="_ZcttcNrnEeal5dJZNvUqew" name="doorsClosed__WaitAllDoorBeOpened__2" source="_BIWYMNrHEeahI77Vg4Dl9Q" target="_cd7pQNrHEeahI77Vg4Dl9Q">
            <trigger xmi:id="_31v2gNrpEeal5dJZNvUqew" event="_NUfP0NrFEeahI77Vg4Dl9Q" port="_k3gyENrBEeahI77Vg4Dl9Q"/>
          </transition>
          <transition xmi:id="_0ubPMEr3Eem5a-bhX4Z1zw" name="Trans__Init__State__45" source="_0uSsUEr3Eem5a-bhX4Z1zw" target="_0uJiYEr3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_0xDscEr3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>initForPMD();
this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;Init__State__4&quot;,&quot;WaitAllDoorBeClosed&quot;,&quot;To__WaitAllDoorBeClosed__20&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;Init__State__4&quot;,&quot;WaitAllDoorBeOpened&quot;,&quot;To__WaitAllDoorBeOpened__23&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;Init__State__4&quot;,&quot;doorsOpen&quot;,&quot;To__doorsOpen__22&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;Init__State__4&quot;,&quot;doorsClosed&quot;,&quot;To__doorsClosed__21&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;Init__State__4&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
          </transition>
          <transition xmi:id="_0upRoEr3Eem5a-bhX4Z1zw" name="From__WaitAllDoorBeClosed__6" source="_IcetINrHEeahI77Vg4Dl9Q" target="_0uJiYEr3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_0xPSoEr3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeClosed&quot;,&quot;WaitAllDoorBeClosed&quot;,&quot;To__WaitAllDoorBeClosed__20&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeClosed&quot;,&quot;WaitAllDoorBeOpened&quot;,&quot;To__WaitAllDoorBeOpened__23&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeClosed&quot;,&quot;doorsOpen&quot;,&quot;To__doorsOpen__22&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeClosed&quot;,&quot;doorsClosed&quot;,&quot;To__doorsClosed__21&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;WaitAllDoorBeClosed&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
            <trigger xmi:id="_0uzCoEr3Eem5a-bhX4Z1zw" name="PME_Trig7" event="_0pXwEEr3Eem5a-bhX4Z1zw" port="_0q9EcEr3Eem5a-bhX4Z1zw"/>
            <trigger xmi:id="_0vCTMEr3Eem5a-bhX4Z1zw" name="PME_Trig8" port="_Cey60NrUEeaBAosuR3tfxw">
              <event xmi:type="uml:CallEvent" href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.common.rts.library_1.0.0.201707181445.jar!/libraries/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
            </trigger>
            <trigger xmi:id="_0vN5YEr3Eem5a-bhX4Z1zw" name="PME_Trig9" event="_NUfP0NrFEeahI77Vg4Dl9Q" port="_k3gyENrBEeahI77Vg4Dl9Q"/>
          </transition>
          <transition xmi:id="_0vZfkEr3Eem5a-bhX4Z1zw" name="From__doorsClosed__10" source="_BIWYMNrHEeahI77Vg4Dl9Q" target="_0uJiYEr3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_0xH94Er3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;doorsClosed&quot;,&quot;WaitAllDoorBeClosed&quot;,&quot;To__WaitAllDoorBeClosed__20&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;doorsClosed&quot;,&quot;WaitAllDoorBeOpened&quot;,&quot;To__WaitAllDoorBeOpened__23&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;doorsClosed&quot;,&quot;doorsOpen&quot;,&quot;To__doorsOpen__22&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;doorsClosed&quot;,&quot;doorsClosed&quot;,&quot;To__doorsClosed__21&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;doorsClosed&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
            <trigger xmi:id="_0vkesEr3Eem5a-bhX4Z1zw" name="PME_Trig11" event="_0pXwEEr3Eem5a-bhX4Z1zw" port="_0q9EcEr3Eem5a-bhX4Z1zw"/>
            <trigger xmi:id="_0vuPsEr3Eem5a-bhX4Z1zw" name="PME_Trig12" port="_Cey60NrUEeaBAosuR3tfxw">
              <event xmi:type="uml:CallEvent" href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.common.rts.library_1.0.0.201707181445.jar!/libraries/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
            </trigger>
          </transition>
          <transition xmi:id="_0v4AsEr3Eem5a-bhX4Z1zw" name="From__doorsOpen__13" source="_7a5GINrGEeahI77Vg4Dl9Q" target="_0uJiYEr3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_0w8XsEr3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;doorsOpen&quot;,&quot;WaitAllDoorBeClosed&quot;,&quot;To__WaitAllDoorBeClosed__20&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;doorsOpen&quot;,&quot;WaitAllDoorBeOpened&quot;,&quot;To__WaitAllDoorBeOpened__23&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;doorsOpen&quot;,&quot;doorsOpen&quot;,&quot;To__doorsOpen__22&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;doorsOpen&quot;,&quot;doorsClosed&quot;,&quot;To__doorsClosed__21&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;doorsOpen&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
            <trigger xmi:id="_0v_8gEr3Eem5a-bhX4Z1zw" name="PME_Trig14" event="_0pXwEEr3Eem5a-bhX4Z1zw" port="_0q9EcEr3Eem5a-bhX4Z1zw"/>
            <trigger xmi:id="_0wIfYEr3Eem5a-bhX4Z1zw" name="PME_Trig15" port="_Cey60NrUEeaBAosuR3tfxw">
              <event xmi:type="uml:CallEvent" href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.common.rts.library_1.0.0.201707181445.jar!/libraries/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
            </trigger>
          </transition>
          <transition xmi:id="_0wMw0Er3Eem5a-bhX4Z1zw" name="From__WaitAllDoorBeOpened__16" source="_cd7pQNrHEeahI77Vg4Dl9Q" target="_0uJiYEr3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_0xRH0Er3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeOpened&quot;,&quot;WaitAllDoorBeClosed&quot;,&quot;To__WaitAllDoorBeClosed__20&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeOpened&quot;,&quot;WaitAllDoorBeOpened&quot;,&quot;To__WaitAllDoorBeOpened__23&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeOpened&quot;,&quot;doorsOpen&quot;,&quot;To__doorsOpen__22&quot;,msg->getSignalName());
this->execContext.addPossibleExecPath(&quot;WaitAllDoorBeOpened&quot;,&quot;doorsClosed&quot;,&quot;To__doorsClosed__21&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;WaitAllDoorBeOpened&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
            <trigger xmi:id="_0wUFkEr3Eem5a-bhX4Z1zw" name="PME_Trig17" event="_0pXwEEr3Eem5a-bhX4Z1zw" port="_0q9EcEr3Eem5a-bhX4Z1zw"/>
            <trigger xmi:id="_0wXv8Er3Eem5a-bhX4Z1zw" name="PME_Trig18" port="_Cey60NrUEeaBAosuR3tfxw">
              <event xmi:type="uml:CallEvent" href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.common.rts.library_1.0.0.201707181445.jar!/libraries/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
            </trigger>
            <trigger xmi:id="_0wedoEr3Eem5a-bhX4Z1zw" name="PME_Trig19" event="_NUfP0NrFEeahI77Vg4Dl9Q" port="_k3gyENrBEeahI77Vg4Dl9Q"/>
          </transition>
          <transition xmi:id="_0wqD0Er3Eem5a-bhX4Z1zw" name="To__WaitAllDoorBeClosed__20" guard="_0xTkEUr3Eem5a-bhX4Z1zw" source="_0uJiYEr3Eem5a-bhX4Z1zw" target="_IcetINrHEeahI77Vg4Dl9Q">
            <ownedRule xmi:id="_0xTkEUr3Eem5a-bhX4Z1zw" name="PME_checkDecesion24">
              <specification xmi:type="uml:OpaqueExpression" xmi:id="_0xTkEEr3Eem5a-bhX4Z1zw" name="PME_checkDecesion24">
                <language>C++</language>
                <body>return execContext.checkUserDecesion({&quot;To__WaitAllDoorBeClosed__20&quot;,&quot;WaitAllDoorBeClosed&quot;, execContext.getExecLocation().locName});
</body>
              </specification>
            </ownedRule>
          </transition>
          <transition xmi:id="_0wtuMEr3Eem5a-bhX4Z1zw" name="To__doorsClosed__21" guard="_0xaRwEr3Eem5a-bhX4Z1zw" source="_0uJiYEr3Eem5a-bhX4Z1zw" target="_BIWYMNrHEeahI77Vg4Dl9Q">
            <ownedRule xmi:id="_0xaRwEr3Eem5a-bhX4Z1zw" name="PME_checkDecesion27">
              <specification xmi:type="uml:OpaqueExpression" xmi:id="_0xZqsEr3Eem5a-bhX4Z1zw" name="PME_checkDecesion27">
                <language>C++</language>
                <body>return execContext.checkUserDecesion({&quot;To__doorsClosed__21&quot;,&quot;doorsClosed&quot;, execContext.getExecLocation().locName});
</body>
              </specification>
            </ownedRule>
          </transition>
          <transition xmi:id="_0wxYkEr3Eem5a-bhX4Z1zw" name="To__doorsOpen__22" guard="_0xZDoUr3Eem5a-bhX4Z1zw" source="_0uJiYEr3Eem5a-bhX4Z1zw" target="_7a5GINrGEeahI77Vg4Dl9Q">
            <ownedRule xmi:id="_0xZDoUr3Eem5a-bhX4Z1zw" name="PME_checkDecesion26">
              <specification xmi:type="uml:OpaqueExpression" xmi:id="_0xZDoEr3Eem5a-bhX4Z1zw" name="PME_checkDecesion26">
                <language>C++</language>
                <body>return execContext.checkUserDecesion({&quot;To__doorsOpen__22&quot;,&quot;doorsOpen&quot;, execContext.getExecLocation().locName});
</body>
              </specification>
            </ownedRule>
          </transition>
          <transition xmi:id="_0wzNwEr3Eem5a-bhX4Z1zw" name="To__WaitAllDoorBeOpened__23" guard="_0xX1gEr3Eem5a-bhX4Z1zw" source="_0uJiYEr3Eem5a-bhX4Z1zw" target="_cd7pQNrHEeahI77Vg4Dl9Q">
            <ownedRule xmi:id="_0xX1gEr3Eem5a-bhX4Z1zw" name="PME_checkDecesion25">
              <specification xmi:type="uml:OpaqueExpression" xmi:id="_0xXOcEr3Eem5a-bhX4Z1zw" name="PME_checkDecesion25">
                <language>C++</language>
                <body>return execContext.checkUserDecesion({&quot;To__WaitAllDoorBeOpened__23&quot;,&quot;WaitAllDoorBeOpened&quot;, execContext.getExecLocation().locName});
</body>
              </specification>
            </ownedRule>
          </transition>
          <subvertex xmi:type="uml:State" xmi:id="_7a5GINrGEeahI77Vg4Dl9Q" name="doorsOpen">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_2oNS4NrJEeahI77Vg4Dl9Q" name="getLockCommand">
              <language>C++</language>
              <body>    std::cout&lt;&lt;&quot;Doors are open&quot;&lt;&lt;std::endl;
    std::cout&lt;&lt;&quot;Press any key to close doors&quot;&lt;&lt;std::endl;
    getchar();
    std::cout&lt;&lt;&quot;Sending Lock message to doors\n&quot;&lt;&lt;std::endl;
    /// send message to first door
    lockPort.lock().send(4);
    tmpInt=1;
</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_BIWYMNrHEeahI77Vg4Dl9Q" name="doorsClosed">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_XyQE0NrpEeal5dJZNvUqew">
              <language>C++</language>
              <body>    std::cout&lt;&lt;&quot;Doors are closed&quot;&lt;&lt;std::endl;
    std::cout&lt;&lt;&quot;Press any key to open doors&quot;&lt;&lt;std::endl;
    getchar();
    std::cout&lt;&lt;&quot;Sending UnLock message to doors\n&quot;&lt;&lt;std::endl;
    /// send message to first door
    lockPort.unlock().send(4);
    tmpInt=1;
</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_IcetINrHEeahI77Vg4Dl9Q" name="WaitAllDoorBeClosed">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_VddNINroEeal5dJZNvUqew">
              <language>C++</language>
              <body>    tmpInt++;
</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_cd7pQNrHEeahI77Vg4Dl9Q" name="WaitAllDoorBeOpened">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_gW1VANrpEeal5dJZNvUqew">
              <language>C++</language>
              <body>    tmpInt++;
</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_0uJiYEr3Eem5a-bhX4Z1zw" name="DecesionPoint__3" kind="choice"/>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_0uSsUEr3Eem5a-bhX4Z1zw" name="Init__State__4"/>
        </region>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0r774Ur3Eem5a-bhX4Z1zw" name="loadHeap" specification="_0r774Er3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>heap.setVarValue(&quot;this.tmpInt&quot;,this->tmpInt);
heap.setVarValue(&quot;this.locksCount&quot;,this->locksCount);
</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0sKlYUr3Eem5a-bhX4Z1zw" name="unLoadHeap" specification="_0sKlYEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>heap.loadVarFromHeap(&quot;this.tmpInt&quot;,&amp;this->tmpInt);
heap.loadVarFromHeap(&quot;this.locksCount&quot;,&amp;this->locksCount);
</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0szekEr3Eem5a-bhX4Z1zw" name="sendMessage" specification="_0sy3gEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>int result=-1;
 if(message.portName==&quot;lockPort&quot;) {
  if(message.signal==&quot;unlock&quot;) {
   if(message.payload.size()==0){
    lockPort.unlock().sendAt(message.index);
result=1;
}
  }
  else if(message.signal==&quot;lock&quot;) {
   if(message.payload.size()==0){
    lockPort.lock().sendAt(message.index);
result=1;
}
  }
 }
return result;
</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0tJc0Ur3Eem5a-bhX4Z1zw" name="sendInternalMessage" specification="_0tJc0Er3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>// will do it as next work</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0t7f8Er3Eem5a-bhX4Z1zw" name="initForPMD" specification="_0t644Er3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>execHelper.readExecConfig();
//this->execHelper.loadExecRules();
this->execContext.setCapsuleHeap(&amp;this->heap);
this->execContext.setCapsuleType(this->getTypeName());
this->execContext.setCapsuleInstanceID(this->getIndex());
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC, this->getCurrentStateString());
this->execContext.setCallBackMethodSendMessage(std::bind(&amp;Capsule_CentralLock::sendMessage, this,std::placeholders::_1));
this->execContext.setCallBackMethodSendInternalMessage(std::bind(&amp;Capsule_CentralLock::sendInternalMessage,this,std::placeholders::_1));
 this->execContext.addOutPutMessages(&quot;lockPort&quot;,&quot;unlock&quot;,{});
this->execContext.addOutPutMessages(&quot;lockPort&quot;,&quot;lock&quot;,{});
 this->execContext.addInputMessages(&quot;lockPort&quot;,&quot;lockStatus&quot;,{ {&quot;locked&quot;,&quot;Boolean&quot;}});
this->execContext.addInputMessages(&quot;startupTimer&quot;,&quot;timeout&quot;,{});
this->execContext.addInputMessages(&quot;dbgPortForCentralLock&quot;,&quot;dbg&quot;,{});
</body>
      </ownedBehavior>
      <ownedOperation xmi:id="_0r774Er3Eem5a-bhX4Z1zw" name="loadHeap" visibility="private" method="_0r774Ur3Eem5a-bhX4Z1zw"/>
      <ownedOperation xmi:id="_0sKlYEr3Eem5a-bhX4Z1zw" name="unLoadHeap" visibility="private" method="_0sKlYUr3Eem5a-bhX4Z1zw"/>
      <ownedOperation xmi:id="_0sy3gEr3Eem5a-bhX4Z1zw" name="sendMessage" visibility="private" method="_0szekEr3Eem5a-bhX4Z1zw">
        <ownedParameter xmi:id="_0s3I8Er3Eem5a-bhX4Z1zw" name="message">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
        <ownedParameter xmi:id="_0tCIEEr3Eem5a-bhX4Z1zw" name="result" direction="return">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_0tJc0Er3Eem5a-bhX4Z1zw" name="sendInternalMessage" visibility="private" method="_0tJc0Ur3Eem5a-bhX4Z1zw">
        <ownedParameter xmi:id="_0tNuQEr3Eem5a-bhX4Z1zw" name="message">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
        <ownedParameter xmi:id="_0tTN0Er3Eem5a-bhX4Z1zw" name="result" direction="return">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_0t644Er3Eem5a-bhX4Z1zw" name="initForPMD" visibility="private" method="_0t7f8Er3Eem5a-bhX4Z1zw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_LXPSQNrAEeahI77Vg4Dl9Q" name="Locking">
      <packagedElement xmi:type="uml:Collaboration" xmi:id="_LXKZwNrAEeahI77Vg4Dl9Q" name="Locking">
        <interfaceRealization xmi:id="_LXV_8NrAEeahI77Vg4Dl9Q" client="_LXKZwNrAEeahI77Vg4Dl9Q" supplier="_LXSVkNrAEeahI77Vg4Dl9Q" contract="_LXSVkNrAEeahI77Vg4Dl9Q"/>
        <interfaceRealization xmi:id="_LXfJ4NrAEeahI77Vg4Dl9Q" client="_LXKZwNrAEeahI77Vg4Dl9Q" supplier="_LXcGkNrAEeahI77Vg4Dl9Q" contract="_LXcGkNrAEeahI77Vg4Dl9Q"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_LXSVkNrAEeahI77Vg4Dl9Q" name="Locking">
        <ownedOperation xmi:id="_WHBOsNrAEeahI77Vg4Dl9Q" name="lock"/>
        <ownedOperation xmi:id="_Y7LYYNrAEeahI77Vg4Dl9Q" name="unlock"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_LXX1INrAEeahI77Vg4Dl9Q" name="Locking~">
        <ownedOperation xmi:id="_MKPDMNrFEeahI77Vg4Dl9Q" name="lockStatus">
          <ownedParameter xmi:id="_P-KAwNrFEeahI77Vg4Dl9Q" name="locked">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Usage" xmi:id="_LXaRYNrAEeahI77Vg4Dl9Q" client="_LXKZwNrAEeahI77Vg4Dl9Q" supplier="_LXX1INrAEeahI77Vg4Dl9Q"/>
      <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_LXa4cNrAEeahI77Vg4Dl9Q" name="*"/>
      <packagedElement xmi:type="uml:Interface" xmi:id="_LXcGkNrAEeahI77Vg4Dl9Q" name="LockingIO"/>
      <packagedElement xmi:type="uml:Usage" xmi:id="_LXgYANrAEeahI77Vg4Dl9Q" client="_LXKZwNrAEeahI77Vg4Dl9Q" supplier="_LXcGkNrAEeahI77Vg4Dl9Q"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_XN1s0NrAEeahI77Vg4Dl9Q" operation="_WHBOsNrAEeahI77Vg4Dl9Q"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_Zlrt8NrAEeahI77Vg4Dl9Q" operation="_Y7LYYNrAEeahI77Vg4Dl9Q"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_NUfP0NrFEeahI77Vg4Dl9Q" operation="_MKPDMNrFEeahI77Vg4Dl9Q"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_0n7loEr3Eem5a-bhX4Z1zw" name="dbgAgent">
      <ownedAttribute xmi:type="uml:Port" xmi:id="_0pd2sEr3Eem5a-bhX4Z1zw" name="timing" visibility="protected">
        <type xmi:type="uml:Collaboration" href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.common.rts.library_1.0.0.201707181445.jar!/libraries/UMLRT-RTS.uml#_MxQZgGXsEeS_4daqvwyFrg"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0pg6AEr3Eem5a-bhX4Z1zw" value="1"/>
        <upperValue xmi:type="uml:LiteralInteger" xmi:id="_0piIIEr3Eem5a-bhX4Z1zw" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_0rFAQEr3Eem5a-bhX4Z1zw" name="dbgPortForCentralLock" visibility="public" type="_0orMgEr3Eem5a-bhX4Z1zw" isBehavior="true" isConjugated="true">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0rG1cEr3Eem5a-bhX4Z1zw" value="1"/>
        <upperValue xmi:type="uml:LiteralInteger" xmi:id="_0rHcgEr3Eem5a-bhX4Z1zw" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_00A50Er3Eem5a-bhX4Z1zw" name="dbgPortForLock" visibility="public" type="_0orMgEr3Eem5a-bhX4Z1zw" isBehavior="true" isConjugated="true">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_00CH8Er3Eem5a-bhX4Z1zw" value="1"/>
        <upperValue xmi:type="uml:LiteralInteger" xmi:id="_00CvAEr3Eem5a-bhX4Z1zw" value="1"/>
      </ownedAttribute>
      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_0oWcYEr3Eem5a-bhX4Z1zw" name="dbgAgent StateMachine">
        <region xmi:id="_0ysrMEr3Eem5a-bhX4Z1zw" name="mainRegion">
          <transition xmi:id="_0zA0QEr3Eem5a-bhX4Z1zw" name="Trans__Init__State__3031" source="_0y6toEr3Eem5a-bhX4Z1zw" target="_0yvugUr3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_0ztX0Er3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>initForPMD();
this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;Init__State__30&quot;,&quot;New__State__29&quot;,&quot;To__New__State__29__34&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;Init__State__30&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
          </transition>
          <transition xmi:id="_0zEeoEr3Eem5a-bhX4Z1zw" name="From__New__State__29__32" source="_0y1OEEr3Eem5a-bhX4Z1zw" target="_0yvugUr3Eem5a-bhX4Z1zw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_0zofUEr3Eem5a-bhX4Z1zw">
              <language>C++</language>
              <body>this->loadHeap();
this->execContext.clearPossibleExecPath();
this->execContext.addPossibleExecPath(&quot;New__State__29&quot;,&quot;New__State__29&quot;,&quot;To__New__State__29__34&quot;,msg->getSignalName());
this->execContext.setlastMsg(msg);
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC,&quot;New__State__29&quot;);
this->execContext.setPartialityPattern(pmd::PartialityPattern::NOTRIGER);
execHelper.getUserDecesion(&amp;execContext);
this->unLoadHeap();
</body>
            </effect>
            <trigger xmi:id="_0zKlQEr3Eem5a-bhX4Z1zw" name="PME_Trig33" port="_0pd2sEr3Eem5a-bhX4Z1zw">
              <event xmi:type="uml:CallEvent" href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.common.rts.library_1.0.0.201707181445.jar!/libraries/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
            </trigger>
          </transition>
          <transition xmi:id="_0zTvMEr3Eem5a-bhX4Z1zw" name="To__New__State__29__34" guard="_0zul8Ur3Eem5a-bhX4Z1zw" source="_0yvugUr3Eem5a-bhX4Z1zw" target="_0y1OEEr3Eem5a-bhX4Z1zw">
            <ownedRule xmi:id="_0zul8Ur3Eem5a-bhX4Z1zw" name="PME_checkDecesion35">
              <specification xmi:type="uml:OpaqueExpression" xmi:id="_0zul8Er3Eem5a-bhX4Z1zw" name="PME_checkDecesion35">
                <language>C++</language>
                <body>return execContext.checkUserDecesion({&quot;To__New__State__29__34&quot;,&quot;New__State__29&quot;, execContext.getExecLocation().locName});
</body>
              </specification>
            </ownedRule>
          </transition>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_0yvugUr3Eem5a-bhX4Z1zw" name="DecesionPoint__28" kind="choice"/>
          <subvertex xmi:type="uml:State" xmi:id="_0y1OEEr3Eem5a-bhX4Z1zw" name="New__State__29">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_0209QEr3Eem5a-bhX4Z1zw" name="New__State__29">
              <language>C++</language>
              <body>timing.informIn(UMLRTTimespec(1,0));
</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_0y6toEr3Eem5a-bhX4Z1zw" name="Init__State__30"/>
        </region>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0xvB4Er3Eem5a-bhX4Z1zw" name="loadHeap" specification="_0xua0Er3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body></body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0xysQUr3Eem5a-bhX4Z1zw" name="unLoadHeap" specification="_0xysQEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body></body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0yEZEEr3Eem5a-bhX4Z1zw" name="sendMessage" specification="_0yDyAEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>int result=-1;
 if(message.portName==&quot;dbgPortForCentralLock&quot;) {
  if(message.signal==&quot;dbg&quot;) {
   if(message.payload.size()==0){
    dbgPortForCentralLock.dbg().sendAt(message.index);
result=1;
}
  }
 }
return result;
</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0yPYMEr3Eem5a-bhX4Z1zw" name="sendInternalMessage" specification="_0yOxIEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>// will do it as next work</body>
      </ownedBehavior>
      <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_0yl9gEr3Eem5a-bhX4Z1zw" name="initForPMD" specification="_0ylWcEr3Eem5a-bhX4Z1zw">
        <language>C++</language>
        <body>execHelper.readExecConfig();
//this->execHelper.loadExecRules();
this->execContext.setCapsuleHeap(&amp;this->heap);
this->execContext.setCapsuleType(this->getTypeName());
this->execContext.setCapsuleInstanceID(this->getIndex());
this->execContext.setExecLocation(pmd::ExecLocationType::STATELOC, this->getCurrentStateString());
this->execContext.setCallBackMethodSendMessage(std::bind(&amp;Capsule_dbgAgent::sendMessage, this,std::placeholders::_1));
this->execContext.setCallBackMethodSendInternalMessage(std::bind(&amp;Capsule_dbgAgent::sendInternalMessage,this,std::placeholders::_1));
 this->execContext.addOutPutMessages(&quot;dbgPortForCentralLock&quot;,&quot;dbg&quot;,{});
 this->execContext.addInputMessages(&quot;timing&quot;,&quot;timeout&quot;,{});
</body>
      </ownedBehavior>
      <ownedOperation xmi:id="_0xua0Er3Eem5a-bhX4Z1zw" name="loadHeap" visibility="private" method="_0xvB4Er3Eem5a-bhX4Z1zw"/>
      <ownedOperation xmi:id="_0xysQEr3Eem5a-bhX4Z1zw" name="unLoadHeap" visibility="private" method="_0xysQUr3Eem5a-bhX4Z1zw"/>
      <ownedOperation xmi:id="_0yDyAEr3Eem5a-bhX4Z1zw" name="sendMessage" visibility="private" method="_0yEZEEr3Eem5a-bhX4Z1zw">
        <ownedParameter xmi:id="_0yG1UEr3Eem5a-bhX4Z1zw" name="message">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
        <ownedParameter xmi:id="_0yIqgEr3Eem5a-bhX4Z1zw" name="result" direction="return">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_0yOxIEr3Eem5a-bhX4Z1zw" name="sendInternalMessage" visibility="private" method="_0yPYMEr3Eem5a-bhX4Z1zw">
        <ownedParameter xmi:id="_0yRNYEr3Eem5a-bhX4Z1zw" name="message">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
        <ownedParameter xmi:id="_0yUQsEr3Eem5a-bhX4Z1zw" name="result" direction="return">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_0ylWcEr3Eem5a-bhX4Z1zw" name="initForPMD" visibility="private" method="_0yl9gEr3Eem5a-bhX4Z1zw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_0olF4Er3Eem5a-bhX4Z1zw" name="dbgProtocol">
      <packagedElement xmi:type="uml:Collaboration" xmi:id="_0orMgEr3Eem5a-bhX4Z1zw" name="dbgProtocol">
        <interfaceRealization xmi:id="_0pK7wEr3Eem5a-bhX4Z1zw" client="_0orMgEr3Eem5a-bhX4Z1zw" supplier="_0owsEEr3Eem5a-bhX4Z1zw" contract="_0owsEEr3Eem5a-bhX4Z1zw"/>
        <interfaceRealization xmi:id="_0pN_EEr3Eem5a-bhX4Z1zw" client="_0orMgEr3Eem5a-bhX4Z1zw" supplier="_0o1kkEr3Eem5a-bhX4Z1zw" contract="_0o1kkEr3Eem5a-bhX4Z1zw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_0owsEEr3Eem5a-bhX4Z1zw" name="dbgProtocol">
        <ownedOperation xmi:id="_0pVT0Er3Eem5a-bhX4Z1zw" name="dbg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_0o0WcEr3Eem5a-bhX4Z1zw" name="dbgProtocol~"/>
      <packagedElement xmi:type="uml:Interface" xmi:id="_0o1kkEr3Eem5a-bhX4Z1zw" name="dbgProtocolIO"/>
      <packagedElement xmi:type="uml:Usage" xmi:id="_0o4A0Er3Eem5a-bhX4Z1zw" client="_0orMgEr3Eem5a-bhX4Z1zw" supplier="_0o0WcEr3Eem5a-bhX4Z1zw"/>
      <packagedElement xmi:type="uml:Usage" xmi:id="_0o5O8Er3Eem5a-bhX4Z1zw" client="_0orMgEr3Eem5a-bhX4Z1zw" supplier="_0o1kkEr3Eem5a-bhX4Z1zw"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_0pXwEEr3Eem5a-bhX4Z1zw" operation="_0pVT0Er3Eem5a-bhX4Z1zw"/>
    </packagedElement>
    <profileApplication xmi:id="_0wPiINq9EeahI77Vg4Dl9Q">
      <eAnnotations xmi:id="_0wR-YNq9EeahI77Vg4Dl9Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
      </eAnnotations>
      <appliedProfile href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.umlrt.profile_1.0.0.201707181432.jar!/umlProfile/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
    </profileApplication>
    <profileApplication xmi:id="_LVEcINrNEeahI77Vg4Dl9Q">
      <eAnnotations xmi:id="_LVFqQNrNEeahI77Vg4Dl9Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/>
      </eAnnotations>
      <appliedProfile href="jar:file:///Users/mojtababagherzadeh/Desktop/Papyrus-RT.app/Contents/Eclipse/plugins/org.eclipse.papyrusrt.codegen.cpp.profile_1.0.0.201707181457.jar!/profiles/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
    </profileApplication>
    <profileApplication xmi:id="_yE6TYElDEemUxsIrz51xbw">
      <eAnnotations xmi:id="_yFErcElDEemUxsIrz51xbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/statemachine#/"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/>
    </profileApplication>
  </uml:Model>
  <UMLRealTime:Capsule xmi:id="_iUqswNq_EeahI77Vg4Dl9Q" base_Class="_iSbRENq_EeahI77Vg4Dl9Q"/>
  <UMLRealTime:Capsule xmi:id="_ltJEcNq_EeahI77Vg4Dl9Q" base_Class="_ls0UUNq_EeahI77Vg4Dl9Q"/>
  <UMLRealTime:Capsule xmi:id="_s7p5kNq_EeahI77Vg4Dl9Q" base_Class="_s7aB8Nq_EeahI77Vg4Dl9Q"/>
  <UMLRealTime:Capsule xmi:id="_xTPk4Nq_EeahI77Vg4Dl9Q" base_Class="_xS9RANq_EeahI77Vg4Dl9Q"/>
  <UMLRealTime:ProtocolContainer xmi:id="_LXQgYNrAEeahI77Vg4Dl9Q" base_Package="_LXPSQNrAEeahI77Vg4Dl9Q"/>
  <UMLRealTime:RTMessageSet xmi:id="_LXUKwNrAEeahI77Vg4Dl9Q" base_Interface="_LXSVkNrAEeahI77Vg4Dl9Q"/>
  <UMLRealTime:RTMessageSet xmi:id="_LXZDQNrAEeahI77Vg4Dl9Q" base_Interface="_LXX1INrAEeahI77Vg4Dl9Q" rtMsgKind="out"/>
  <UMLRealTime:RTMessageSet xmi:id="_LXdUsNrAEeahI77Vg4Dl9Q" base_Interface="_LXcGkNrAEeahI77Vg4Dl9Q" rtMsgKind="inOut"/>
  <UMLRealTime:Protocol xmi:id="_LXg_ENrAEeahI77Vg4Dl9Q" base_Collaboration="_LXKZwNrAEeahI77Vg4Dl9Q"/>
  <UMLRealTime:CapsulePart xmi:id="_GVgBQNrBEeahI77Vg4Dl9Q" base_Property="_GVbv0NrBEeahI77Vg4Dl9Q"/>
  <UMLRealTime:CapsulePart xmi:id="_LNWhANrBEeahI77Vg4Dl9Q" base_Property="_LNSPkNrBEeahI77Vg4Dl9Q"/>
  <UMLRealTime:RTPort xmi:id="_WvNaoNrBEeahI77Vg4Dl9Q" base_Port="_WvH7ENrBEeahI77Vg4Dl9Q"/>
  <UMLRealTime:RTPort xmi:id="_k3m4sNrBEeahI77Vg4Dl9Q" base_Port="_k3gyENrBEeahI77Vg4Dl9Q"/>
  <UMLRealTime:CapsulePart xmi:id="_yAPi4NrBEeahI77Vg4Dl9Q" base_Property="_yAJcQNrBEeahI77Vg4Dl9Q"/>
  <UMLRealTime:RTPort xmi:id="_-jPJYNrBEeahI77Vg4Dl9Q" base_Port="_-jLfANrBEeahI77Vg4Dl9Q"/>
  <UMLRealTime:RTConnector xmi:id="_U4ZNgdrCEeahI77Vg4Dl9Q" base_Connector="_U4X_YNrCEeahI77Vg4Dl9Q"/>
  <RTCppProperties:CapsuleProperties xmi:id="_QG5zcNrNEeahI77Vg4Dl9Q" headerPreface="#include&lt;stdio.h>&#xA;#include&lt;iostream>&#xA;&#xA;&#xA;#include &quot;ExecContext.hpp&quot; &#xA;#include &quot;PMDTypes.hpp&quot;&#xA;#include &quot;Config.hpp&quot;&#xA;#include &quot;Heap.hpp&quot;&#xA;#include &lt;iostream>&#xA;#include &lt;map>&#xA;#include &lt;functional>&#xA;#include &quot;ExecHelper.hpp&quot;&#xA;#include &lt;boost/any.hpp>&#xA;" base_Class="_s7aB8Nq_EeahI77Vg4Dl9Q" privateDeclarations="pmd::Heap  heap;&#xA;pmd::ExecHelper execHelper;&#xA;Config config;&#xA;UMLRTMessage currentMessage;&#xA;bool runStateCode;&#xA;pmd::ExecContextOfCapsule execContext;&#xA;"/>
  <RTCppProperties:CapsuleProperties xmi:id="_qaE6YNrPEeay9vzLxQrrvQ" headerPreface="#include&lt;stdio.h>&#xA;#include&lt;iostream>&#xA;#include &quot;ExecContext.hpp&quot; &#xA;#include &quot;PMDTypes.hpp&quot;&#xA;#include &quot;Config.hpp&quot;&#xA;#include &quot;Heap.hpp&quot;&#xA;#include &lt;iostream>&#xA;#include &lt;map>&#xA;#include &lt;functional>&#xA;#include &quot;ExecHelper.hpp&quot;&#xA;#include &lt;boost/any.hpp>&#xA;" base_Class="_xS9RANq_EeahI77Vg4Dl9Q" privateDeclarations="pmd::Heap  heap;&#xA;pmd::ExecHelper execHelper;&#xA;Config config;&#xA;UMLRTMessage currentMessage;&#xA;bool runStateCode;&#xA;pmd::ExecContextOfCapsule execContext;&#xA;"/>
  <UMLRealTime:RTPort xmi:id="_Ce3MQNrUEeaBAosuR3tfxw" isWired="false" base_Port="_Cey60NrUEeaBAosuR3tfxw"/>
  <UMLRealTime:RTConnector xmi:id="_-oDOkNraEeal5dJZNvUqew" base_Connector="_-n9H8NraEeal5dJZNvUqew"/>
  <UMLRealTime:CapsulePart xmi:id="_V8w48NrgEeal5dJZNvUqew" base_Property="_V8mg4NrgEeal5dJZNvUqew"/>
  <UMLRealTime:RTConnector xmi:id="_bwRvstrgEeal5dJZNvUqew" base_Connector="_bwP6gNrgEeal5dJZNvUqew"/>
  <UMLRealTime:CapsulePart xmi:id="_5AN0oNrgEeal5dJZNvUqew" base_Property="_5AKKQNrgEeal5dJZNvUqew"/>
  <UMLRealTime:RTConnector xmi:id="_-3zTEdrgEeal5dJZNvUqew" base_Connector="_-3w20NrgEeal5dJZNvUqew"/>
  <UMLRealTime:CapsulePart xmi:id="_AVeyANrhEeal5dJZNvUqew" base_Property="_AVcVwNrhEeal5dJZNvUqew"/>
  <UMLRealTime:RTConnector xmi:id="_EUj2sNrhEeal5dJZNvUqew" base_Connector="_EUhacNrhEeal5dJZNvUqew"/>
  <UMLRealTime:Capsule xmi:id="_0oV1UEr3Eem5a-bhX4Z1zw" base_Class="_0n7loEr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTStateMachine xmi:id="_0oke0Er3Eem5a-bhX4Z1zw" base_StateMachine="_0oWcYEr3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:ProtocolContainer xmi:id="_0oowQEr3Eem5a-bhX4Z1zw" base_Package="_0olF4Er3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:Protocol xmi:id="_0ovd8Er3Eem5a-bhX4Z1zw" base_Collaboration="_0orMgEr3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:RTMessageSet xmi:id="_0o9gYEr3Eem5a-bhX4Z1zw" base_Interface="_0owsEEr3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:RTMessageSet xmi:id="_0pHRYEr3Eem5a-bhX4Z1zw" base_Interface="_0o0WcEr3Eem5a-bhX4Z1zw" rtMsgKind="out"/>
  <UMLRealTime:RTMessageSet xmi:id="_0pJtoEr3Eem5a-bhX4Z1zw" base_Interface="_0o1kkEr3Eem5a-bhX4Z1zw" rtMsgKind="inOut"/>
  <UMLRealTime:RTPort xmi:id="_0px_wEr3Eem5a-bhX4Z1zw" base_Port="_0pd2sEr3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:RTPort xmi:id="_0rDLEEr3Eem5a-bhX4Z1zw" isWired="false" base_Port="_0q9EcEr3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:RTPort xmi:id="_0rJ4wEr3Eem5a-bhX4Z1zw" isPublish="true" isWired="false" base_Port="_0rFAQEr3Eem5a-bhX4Z1zw"/>
  <RTCppProperties:CapsuleProperties xmi:id="_0rt5cEr3Eem5a-bhX4Z1zw" base_Class="_s7aB8Nq_EeahI77Vg4Dl9Q"/>
  <RTCppProperties:CapsuleProperties xmi:id="_0r3DYEr3Eem5a-bhX4Z1zw" base_Class="_s7aB8Nq_EeahI77Vg4Dl9Q"/>
  <RTCppProperties:ParameterProperties xmi:id="_0s_EwEr3Eem5a-bhX4Z1zw" type="pmd::Message" base_Parameter="_0s3I8Er3Eem5a-bhX4Z1zw"/>
  <RTCppProperties:ParameterProperties xmi:id="_0tR_sEr3Eem5a-bhX4Z1zw" type="pmd::Message" base_Parameter="_0tNuQEr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_0uOa4Er3Eem5a-bhX4Z1zw" base_Pseudostate="_0uJiYEr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_0uYy8Er3Eem5a-bhX4Z1zw" base_Pseudostate="_0uSsUEr3Eem5a-bhX4Z1zw"/>
  <RTCppProperties:CapsuleProperties xmi:id="_0xkCwEr3Eem5a-bhX4Z1zw" headerPreface="#include &quot;ExecContext.hpp&quot; &#xA;#include &quot;PMDTypes.hpp&quot;&#xA;#include &quot;Config.hpp&quot;&#xA;#include &quot;Heap.hpp&quot;&#xA;#include &lt;iostream>&#xA;#include &lt;map>&#xA;#include &lt;functional>&#xA;#include &quot;ExecHelper.hpp&quot;&#xA;#include &lt;boost/any.hpp>&#xA;" base_Class="_0n7loEr3Eem5a-bhX4Z1zw" privateDeclarations="pmd::Heap  heap;&#xA;pmd::ExecHelper execHelper;&#xA;Config config;&#xA;UMLRTMessage currentMessage;&#xA;bool runStateCode;&#xA;pmd::ExecContextOfCapsule execContext;&#xA;"/>
  <RTCppProperties:CapsuleProperties xmi:id="_0xntIEr3Eem5a-bhX4Z1zw" base_Class="_0n7loEr3Eem5a-bhX4Z1zw"/>
  <RTCppProperties:ParameterProperties xmi:id="_0yIDcEr3Eem5a-bhX4Z1zw" type="pmd::Message" base_Parameter="_0yG1UEr3Eem5a-bhX4Z1zw"/>
  <RTCppProperties:ParameterProperties xmi:id="_0ySbgEr3Eem5a-bhX4Z1zw" type="pmd::Message" base_Parameter="_0yRNYEr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTRegion xmi:id="_0yvugEr3Eem5a-bhX4Z1zw" base_Region="_0ysrMEr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_0yyKwEr3Eem5a-bhX4Z1zw" base_Pseudostate="_0yvugUr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTState xmi:id="_0y5fgEr3Eem5a-bhX4Z1zw" base_State="_0y1OEEr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_0y-YAEr3Eem5a-bhX4Z1zw" base_Pseudostate="_0y6toEr3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:RTPort xmi:id="_0z-dkEr3Eem5a-bhX4Z1zw" isWired="false" base_Port="_0z4W8Er3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:RTPort xmi:id="_00HngEr3Eem5a-bhX4Z1zw" isPublish="true" isWired="false" base_Port="_00A50Er3Eem5a-bhX4Z1zw"/>
  <RTCppProperties:CapsuleProperties xmi:id="_00bJgEr3Eem5a-bhX4Z1zw" base_Class="_xS9RANq_EeahI77Vg4Dl9Q"/>
  <RTCppProperties:CapsuleProperties xmi:id="_00k6gEr3Eem5a-bhX4Z1zw" base_Class="_xS9RANq_EeahI77Vg4Dl9Q"/>
  <RTCppProperties:ParameterProperties xmi:id="_01Po4Er3Eem5a-bhX4Z1zw" type="pmd::Message" base_Parameter="_01LXcEr3Eem5a-bhX4Z1zw"/>
  <RTCppProperties:ParameterProperties xmi:id="_01jx8Er3Eem5a-bhX4Z1zw" type="pmd::Message" base_Parameter="_01dEQEr3Eem5a-bhX4Z1zw"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_02BE8Er3Eem5a-bhX4Z1zw" base_Pseudostate="_01_20Er3Eem5a-bhX4Z1zw"/>
  <UMLRealTime:CapsulePart xmi:id="_02vdsEr3Eem5a-bhX4Z1zw" base_Property="_02uPkEr3Eem5a-bhX4Z1zw"/>
</xmi:XMI>
