<?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="_FX4asIgqEeiP-_qqZZR9Jg" name="model">
    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FX4asYgqEeiP-_qqZZR9Jg" source="http://www.eclipse.org/papyrus-rt/language/1.0.0">
      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FX4asogqEeiP-_qqZZR9Jg" key="language" value="umlrt-cpp"/>
    </eAnnotations>
    <packagedElement xmi:type="uml:Class" xmi:id="_HR_-AIgqEeiP-_qqZZR9Jg" name="Top" isActive="true">
      <ownedAttribute xmi:type="uml:Property" xmi:id="_WIGPkIgqEeiP-_qqZZR9Jg" name="player1" visibility="protected" type="_J_oo8IgqEeiP-_qqZZR9Jg" isOrdered="true" aggregation="composite"/>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_nYqSgJanEemCgN1WwdiMbQ" name="referee" visibility="protected" type="_VuOiEJXsEemnlJvKCgeTXw" isOrdered="true" aggregation="composite"/>
      <ownedConnector xmi:type="uml:Connector" xmi:id="_1W2rsJanEemCgN1WwdiMbQ" name="RTConnector1">
        <end xmi:type="uml:ConnectorEnd" xmi:id="_1W6WEJanEemCgN1WwdiMbQ" partWithPort="_WIGPkIgqEeiP-_qqZZR9Jg" role="_ve72EJanEemCgN1WwdiMbQ"/>
        <end xmi:type="uml:ConnectorEnd" xmi:id="_1W69IJanEemCgN1WwdiMbQ" partWithPort="_nYqSgJanEemCgN1WwdiMbQ" role="_iSOGwJXvEemnlJvKCgeTXw"/>
      </ownedConnector>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_IQj4AIgqEeiP-_qqZZR9Jg" name="Observer" classifierBehavior="_aLDAQIgtEeiP-_qqZZR9Jg" isActive="true">
      <ownedAttribute xmi:type="uml:Port" xmi:id="_YHmXQIgsEeiP-_qqZZR9Jg" name="observationPort" visibility="public" type="_dCmjkIgqEeiP-_qqZZR9Jg" isOrdered="true" aggregation="composite" isBehavior="true" isConjugated="false" isService="true"/>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_TnTmcIgtEeiP-_qqZZR9Jg" name="log" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_6kIb0IeXEeSVyrlWP4nYew"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_UULTgIgtEeiP-_qqZZR9Jg" name="timer" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_MxQZgGXsEeS_4daqvwyFrg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_w861kIgtEeiP-_qqZZR9Jg" name="cmd" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_pt4mkIguEeiP-_qqZZR9Jg" name="readyMsg" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="_0c_0oIguEeiP-_qqZZR9Jg" value="ready\n"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_8QowEIguEeiP-_qqZZR9Jg" name="gpsMsg" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="_DWRWAIgvEeiP-_qqZZR9Jg" value="Leader,GPS()\n"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_GYZqQIgvEeiP-_qqZZR9Jg" name="distanceMsg" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
        <defaultValue xmi:type="uml:LiteralString" xmi:id="_K_SV0IgvEeiP-_qqZZR9Jg" value="Leader,Distance()\n"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_RoGDkIg0EeiP-_qqZZR9Jg" name="samplerate" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_WnLzwIg0EeiP-_qqZZR9Jg" value="100000000"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_EJI60JRkEem-h8JsU1axzg" name="tcp" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_tEiNsa1CEeeZPMea3Z4z9w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_hVmKkJasEemCgN1WwdiMbQ" name="refereeProtocol" visibility="public" type="_ibMj8JXsEemnlJvKCgeTXw" isOrdered="true" aggregation="composite" isBehavior="true" isConjugated="true" isService="true"/>
      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_aLDAQIgtEeiP-_qqZZR9Jg" name="ObserverStateMachine" isReentrant="false">
        <region xmi:type="uml:Region" xmi:id="_aLOmcIgtEeiP-_qqZZR9Jg" name="Region">
          <transition xmi:type="uml:Transition" xmi:id="_aLZlkIgtEeiP-_qqZZR9Jg" name="Initial" source="_aLRCsIgtEeiP-_qqZZR9Jg" target="_OTqwwJa3EemCgN1WwdiMbQ">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_JPynMJa3EemCgN1WwdiMbQ" name="Effect" isReentrant="false">
              <language>C++</language>
              <body>tcp.connect(&quot;127.0.0.1&quot;,9003);
</body>
            </effect>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_VAJI8IjuEeiP-_qqZZR9Jg" name="" kind="external" source="_aLWiQIgtEeiP-_qqZZR9Jg" target="_MXIrwIjuEeiP-_qqZZR9Jg">
            <trigger xmi:type="uml:Trigger" xmi:id="_1UuuUJazEemCgN1WwdiMbQ" event="_bjhMUJauEemCgN1WwdiMbQ" port="_YHmXQIgsEeiP-_qqZZR9Jg"/>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_WfQLQIjuEeiP-_qqZZR9Jg" name="" kind="external" source="_aLWiQIgtEeiP-_qqZZR9Jg" target="_Rrb28IjuEeiP-_qqZZR9Jg">
            <trigger xmi:type="uml:Trigger" xmi:id="_3hedQJa0EemCgN1WwdiMbQ" event="_Zk1SEJauEemCgN1WwdiMbQ" port="_YHmXQIgsEeiP-_qqZZR9Jg"/>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_aB1hMIjuEeiP-_qqZZR9Jg" name="" kind="external" source="_aLWiQIgtEeiP-_qqZZR9Jg" target="_O4Io4IjuEeiP-_qqZZR9Jg">
            <trigger xmi:type="uml:Trigger" xmi:id="_U8kewJa0EemCgN1WwdiMbQ" event="_X9lAYJauEemCgN1WwdiMbQ" port="_YHmXQIgsEeiP-_qqZZR9Jg"/>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_g4iTQIjuEeiP-_qqZZR9Jg" name="" kind="external" source="_MXIrwIjuEeiP-_qqZZR9Jg" target="_aLWiQIgtEeiP-_qqZZR9Jg">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_UdBcAJa0EemCgN1WwdiMbQ" name="Effect" isReentrant="false">
              <language>C++</language>
              <body> std::cout&lt;&lt;&quot;[RECEIVED]: &quot;&lt;&lt; payload &lt;&lt;&quot;\n&quot;;

std::string payloadStr (payload);
int pos1 = payloadStr.find(&quot;,&quot;);
std::string PlayerNameStr = payloadStr.substr(0, pos1);

int size = payloadStr.size();

int pos2 = payloadStr.find(&quot;,&quot;,pos1+1);
std::string compassStr = payloadStr.substr(pos1+1, size);


float compass = std::atof(compassStr.c_str());
observationPort.playerCompass(compass).send(); 

 std::cout&lt;&lt;&quot;[OBSERVER][compass]: &quot;&lt;&lt; compass &lt;&lt;&quot;\n&quot;;</body>
            </effect>
            <trigger xmi:type="uml:Trigger" xmi:id="_-D4PwJazEemCgN1WwdiMbQ" port="_EJI60JRkEem-h8JsU1axzg">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_zwyoUK1YEee74Ow6RXIGBA"/>
            </trigger>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_nH9C4IjuEeiP-_qqZZR9Jg" name="" kind="external" source="_Rrb28IjuEeiP-_qqZZR9Jg" target="_aLWiQIgtEeiP-_qqZZR9Jg">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_CBnbMJa1EemCgN1WwdiMbQ" name="Effect" isReentrant="false">
              <language>C++</language>
              <body>std::cout&lt;&lt;&quot;[RECEIVED]: &quot;&lt;&lt; payload &lt;&lt;&quot;\n&quot;;

std::string payloadStr (payload);
int pos1 = payloadStr.find(&quot;,&quot;);
std::string PlayerNameStr = payloadStr.substr(0, pos1);

int pos2 = payloadStr.find(&quot;,&quot;,pos1+1);
std::string xStr = payloadStr.substr(pos1+1, pos2);

int size = payloadStr.size();

std::string zStr = payloadStr.substr(pos2+1, size);




float ballX = std::stof(xStr);
float ballZ = std::stof(zStr);

std::cout&lt;&lt;&quot;[RECEIVED][ballX]: &quot;&lt;&lt; ballX &lt;&lt;&quot;\n&quot;;
std::cout&lt;&lt;&quot;[RECEIVED][ballZ]: &quot;&lt;&lt; ballZ &lt;&lt;&quot;\n&quot;;

observationPort.ballPos(ballX,ballZ).send();
</body>
            </effect>
            <trigger xmi:type="uml:Trigger" xmi:id="_6g-UQJa0EemCgN1WwdiMbQ" port="_EJI60JRkEem-h8JsU1axzg">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_zwyoUK1YEee74Ow6RXIGBA"/>
            </trigger>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_qNXUoIjuEeiP-_qqZZR9Jg" name="" kind="external" source="_O4Io4IjuEeiP-_qqZZR9Jg" target="_aLWiQIgtEeiP-_qqZZR9Jg">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_qH7CMJa0EemCgN1WwdiMbQ" name="Effect" isReentrant="false">
              <language>C++</language>
              <body> std::cout&lt;&lt;&quot;[RECEIVED]: &quot;&lt;&lt; payload &lt;&lt;&quot;\n&quot;;

std::string payloadStr (payload);
int pos1 = payloadStr.find(&quot;,&quot;);
std::string PlayerNameStr = payloadStr.substr(0, pos1);

int pos2 = payloadStr.find(&quot;,&quot;,pos1+1);
std::string xStr = payloadStr.substr(pos1+1, pos2);

int size = payloadStr.size();

std::string zStr = payloadStr.substr(pos2+1, size);




float playerX = std::stof(xStr);
float playerZ = std::stof(zStr);

 std::cout&lt;&lt;&quot;[RECEIVED][playerX]: &quot;&lt;&lt; playerX &lt;&lt;&quot;\n&quot;;
 std::cout&lt;&lt;&quot;[RECEIVED][playerZ]: &quot;&lt;&lt; playerZ &lt;&lt;&quot;\n&quot;;


observationPort.playerPos(playerX,playerZ).send();
</body>
            </effect>
            <trigger xmi:type="uml:Trigger" xmi:id="_kZWV0Ja0EemCgN1WwdiMbQ" port="_EJI60JRkEem-h8JsU1axzg">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_zwyoUK1YEee74Ow6RXIGBA"/>
            </trigger>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_SB1roJa3EemCgN1WwdiMbQ" name="" kind="external" source="_OTqwwJa3EemCgN1WwdiMbQ" target="_aLWiQIgtEeiP-_qqZZR9Jg">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_gw_AoJa3EemCgN1WwdiMbQ" name="Effect" isReentrant="false">
              <language>C++</language>
              <body> std::cout&lt;&lt;&quot;[TCP CONNECTION HAS BEEN SUCCESSFULLY ESTABLISHED !] \n\n\n&quot;;</body>
            </effect>
            <trigger xmi:type="uml:Trigger" xmi:id="_WxBXkJa3EemCgN1WwdiMbQ" port="_EJI60JRkEem-h8JsU1axzg">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_s9iNgMT3Eei7WtNtKyCSvw"/>
            </trigger>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_jbplMJa5EemCgN1WwdiMbQ" name="" kind="external" source="_aLWiQIgtEeiP-_qqZZR9Jg" target="_XagukJa5EemCgN1WwdiMbQ">
            <trigger xmi:type="uml:Trigger" xmi:id="_10vcYJa5EemCgN1WwdiMbQ" event="_NwKNUJayEemCgN1WwdiMbQ" port="_YHmXQIgsEeiP-_qqZZR9Jg"/>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_s0p78Ja5EemCgN1WwdiMbQ" name="" kind="external" source="_XagukJa5EemCgN1WwdiMbQ" target="_aLWiQIgtEeiP-_qqZZR9Jg">
            <trigger xmi:type="uml:Trigger" xmi:id="_K10pgJa6EemCgN1WwdiMbQ" port="_UULTgIgtEeiP-_qqZZR9Jg">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
            </trigger>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_1QRRkJdiEemu8v-9gGlQEg" name="deferMSG1" kind="external" source="_XagukJa5EemCgN1WwdiMbQ" target="_XagukJa5EemCgN1WwdiMbQ">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_5mfq8JdiEemu8v-9gGlQEg" name="Effect" isReentrant="false">
              <language>C++</language>
              <body>msg->defer();</body>
            </effect>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_YbebQJeIEemu8v-9gGlQEg" name="" kind="external" source="_VJfGEJeIEemu8v-9gGlQEg" target="_aLWiQIgtEeiP-_qqZZR9Jg">
            <trigger xmi:type="uml:Trigger" xmi:id="_CrIe8JeJEemu8v-9gGlQEg" port="_UULTgIgtEeiP-_qqZZR9Jg">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
            </trigger>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_bxy20JeIEemu8v-9gGlQEg" name="" kind="external" source="_aLWiQIgtEeiP-_qqZZR9Jg" target="_VJfGEJeIEemu8v-9gGlQEg">
            <trigger xmi:type="uml:Trigger" xmi:id="_eZ0B8JeIEemu8v-9gGlQEg" event="_8wjAoJaoEemCgN1WwdiMbQ" port="_hVmKkJasEemCgN1WwdiMbQ"/>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_FX94oJeJEemu8v-9gGlQEg" name="deferMSG2" kind="external" source="_VJfGEJeIEemu8v-9gGlQEg" target="_VJfGEJeIEemu8v-9gGlQEg">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_KznpAJeJEemu8v-9gGlQEg" name="Effect" isReentrant="false">
              <language>C++</language>
              <body>msg->defer();</body>
            </effect>
          </transition>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_aLRCsIgtEeiP-_qqZZR9Jg" kind="initial"/>
          <subvertex xmi:type="uml:State" xmi:id="_aLWiQIgtEeiP-_qqZZR9Jg" name="WAITING">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_HOntgJdjEemu8v-9gGlQEg" name="Entry" isReentrant="false">
              <language>C++</language>
              <body>observationPort.recallAll();</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_MXIrwIjuEeiP-_qqZZR9Jg" name="GET_COMPASS">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_R4FWYIjvEeiP-_qqZZR9Jg" name="Entry">
              <language>C++</language>
              <body>tcp.send(&quot;player2,getCompass()&quot;);
 std::cout&lt;&lt;&quot;[SEND]: player2,getCompass() \n&quot;;</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_O4Io4IjuEeiP-_qqZZR9Jg" name="GET_PLAYER_POS">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_jPcugJa0EemCgN1WwdiMbQ" name="Entry" isReentrant="false">
              <language>C++</language>
              <body>tcp.send(&quot;player2,GPS()&quot;);
 std::cout&lt;&lt;&quot;[SEND]: player2,GPS() \n&quot;;</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_Rrb28IjuEeiP-_qqZZR9Jg" name="GET_BALL_POS">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_Kn9l8Ja1EemCgN1WwdiMbQ" name="Entry" isReentrant="false">
              <language>C++</language>
              <body>tcp.send(&quot;ball,GPS()&quot;);
 std::cout&lt;&lt;&quot;[SEND]: ball,GPS() \n&quot;;</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_OTqwwJa3EemCgN1WwdiMbQ" name="CONNECTING"/>
          <subvertex xmi:type="uml:State" xmi:id="_XagukJa5EemCgN1WwdiMbQ" name="SEND_CMD">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_bT8eQJa5EemCgN1WwdiMbQ" name="Entry" isReentrant="false">
              <language>C++</language>
              <body>char* cmdCHAR = strcpy(new char[strlen(cmd) + 1], cmd);
tcp.send(cmdCHAR);
 std::cout&lt;&lt;&quot;[SEND][cmd]: &quot;&lt;&lt; cmd &lt;&lt;&quot;\n&quot;;

timer.informIn(UMLRTTimespec(0, 100000000));</body>
            </entry>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_VJfGEJeIEemu8v-9gGlQEg" name="BALL_POSSESION">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_0_0lgJeIEemu8v-9gGlQEg" name="Entry" isReentrant="false">
              <language>C++</language>
              <body> std::cout&lt;&lt;&quot;[BALL POSSESION] \n&quot;;
observationPort.goScoring().send();
timer.informIn(UMLRTTimespec(0, 1000));</body>
            </entry>
          </subvertex>
        </region>
      </ownedBehavior>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_J_oo8IgqEeiP-_qqZZR9Jg" name="Player" classifierBehavior="_uUhkEIg6EeiP-_qqZZR9Jg" isActive="true">
      <ownedAttribute xmi:type="uml:Port" xmi:id="_oLctAIg6EeiP-_qqZZR9Jg" name="log" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_6kIb0IeXEeSVyrlWP4nYew"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_pwcy8IidEeiP-_qqZZR9Jg" name="playerController" visibility="protected" type="_qAMfIIidEeiP-_qqZZR9Jg" isOrdered="true" aggregation="composite"/>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_wO4noIjtEeiP-_qqZZR9Jg" name="observer" visibility="protected" type="_IQj4AIgqEeiP-_qqZZR9Jg" isOrdered="true" aggregation="composite"/>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_Qi1zAIj1EeiP-_qqZZR9Jg" name="timer" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_MxQZgGXsEeS_4daqvwyFrg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_ve72EJanEemCgN1WwdiMbQ" name="refereeProtocol" visibility="public" type="_ibMj8JXsEemnlJvKCgeTXw" isOrdered="true" aggregation="composite" isBehavior="false" isConjugated="true" isService="true"/>
      <ownedConnector xmi:type="uml:Connector" xmi:id="_1cxXYJawEemCgN1WwdiMbQ" name="RTConnector4">
        <end xmi:type="uml:ConnectorEnd" xmi:id="_1c2P4JawEemCgN1WwdiMbQ" partWithPort="_wO4noIjtEeiP-_qqZZR9Jg" role="_YHmXQIgsEeiP-_qqZZR9Jg"/>
        <end xmi:type="uml:ConnectorEnd" xmi:id="_1c228JawEemCgN1WwdiMbQ" partWithPort="_pwcy8IidEeiP-_qqZZR9Jg" role="_vAt58JawEemCgN1WwdiMbQ"/>
      </ownedConnector>
      <ownedConnector xmi:type="uml:Connector" xmi:id="_F5eRwJdeEemu8v-9gGlQEg" name="RTConnector5">
        <end xmi:type="uml:ConnectorEnd" xmi:id="_F5ijMJdeEemu8v-9gGlQEg" role="_ve72EJanEemCgN1WwdiMbQ"/>
        <end xmi:type="uml:ConnectorEnd" xmi:id="_F5jKQJdeEemu8v-9gGlQEg" partWithPort="_wO4noIjtEeiP-_qqZZR9Jg" role="_hVmKkJasEemCgN1WwdiMbQ"/>
      </ownedConnector>
      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_uUhkEIg6EeiP-_qqZZR9Jg" name="PlayerStateMachine" isReentrant="false">
        <region xmi:type="uml:Region" xmi:id="_uUoRwIg6EeiP-_qqZZR9Jg" name="Region"/>
      </ownedBehavior>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_qAMfIIidEeiP-_qqZZR9Jg" name="PlayerController" classifierBehavior="_M-OIQIieEeiP-_qqZZR9Jg" isActive="true">
      <ownedAttribute xmi:type="uml:Port" xmi:id="_xFvwEIieEeiP-_qqZZR9Jg" name="timer" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_MxQZgGXsEeS_4daqvwyFrg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_y3Op4IigEeiP-_qqZZR9Jg" name="log" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_6kIb0IeXEeSVyrlWP4nYew"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_BdWqAJRkEem-h8JsU1axzg" name="tcp" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_tEiNsa1CEeeZPMea3Z4z9w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_vAt58JawEemCgN1WwdiMbQ" name="observationPort" visibility="public" type="_dCmjkIgqEeiP-_qqZZR9Jg" isOrdered="true" aggregation="composite" isBehavior="true" isConjugated="true" isService="true"/>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_e1JQ8Ja1EemCgN1WwdiMbQ" name="compass" isStatic="true">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_e1J4AJa1EemCgN1WwdiMbQ" name="playerX">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_e1J4AZa1EemCgN1WwdiMbQ"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_e1KfEJa1EemCgN1WwdiMbQ" name="playerZ" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_e1KfEZa1EemCgN1WwdiMbQ"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_e1LGIJa1EemCgN1WwdiMbQ" name="ballX">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_e1LtMJa1EemCgN1WwdiMbQ" name="ballZ">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_hPV-EJdbEemu8v-9gGlQEg" name="approaching_threshold" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_hPV-EZdbEemu8v-9gGlQEg" value="5"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_hPXMMJdbEemu8v-9gGlQEg" name="moveForward">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_hPXMMZdbEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_hPXzQJdbEemu8v-9gGlQEg" name="moveForwardPower">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_hPXzQZdbEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_hPYaUJdbEemu8v-9gGlQEg" name="moveRight">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_hPYaUZdbEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_hPZBYJdbEemu8v-9gGlQEg" name="moveRightPower">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_hPZBYZdbEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_hPZocJdbEemu8v-9gGlQEg" name="moveFB">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_hPZocZdbEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_hPZocpdbEemu8v-9gGlQEg" name="moveRL">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
        <qualifier xmi:type="uml:Property" xmi:id="_FIJHMJd5Eemu8v-9gGlQEg" name="moveRL">
          <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
          <defaultValue xmi:type="uml:LiteralReal" xmi:id="_FIJHMZd5Eemu8v-9gGlQEg"/>
        </qualifier>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_hPZoc5dbEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_7xSO4JdfEemu8v-9gGlQEg" name="__compass" isStatic="true">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_7xTdAJdfEemu8v-9gGlQEg" name="__playerX">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_7xTdAZdfEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_7xUEEJdfEemu8v-9gGlQEg" name="__playerZ" visibility="public">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
        <defaultValue xmi:type="uml:LiteralReal" xmi:id="_7xUEEZdfEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_7xUrIJdfEemu8v-9gGlQEg" name="__ballX">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_7xVSMJdfEemu8v-9gGlQEg" name="__ballZ">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_Ggv44Jd5Eemu8v-9gGlQEg" name="ballAchiveable">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_MGuC4Jd5Eemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_mQQAcJeNEemu8v-9gGlQEg" name="angle">
        <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ncDFMJeNEemu8v-9gGlQEg" value="1"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ncNdQJeNEemu8v-9gGlQEg" value="1"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Property" xmi:id="_6t63IJeQEemu8v-9gGlQEg" name="compassAdjusted">
        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
        <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_6t63IZeQEemu8v-9gGlQEg"/>
      </ownedAttribute>
      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_M-OIQIieEeiP-_qqZZR9Jg" name="ControllerStateMachine" isReentrant="false">
        <region xmi:type="uml:Region" xmi:id="_M-U18IieEeiP-_qqZZR9Jg" name="Region">
          <transition xmi:type="uml:Transition" xmi:id="_M-ZucYieEeiP-_qqZZR9Jg" name="Initial" source="_M-WEEIieEeiP-_qqZZR9Jg" target="_KPtFsJavEemCgN1WwdiMbQ"/>
          <transition xmi:type="uml:Transition" xmi:id="_dCvY0JatEemCgN1WwdiMbQ" name="" kind="external" source="_V3TRUJdnEemu8v-9gGlQEg" target="_YgnkgJeJEemu8v-9gGlQEg">
            <trigger xmi:type="uml:Trigger" xmi:id="_UpQRYJeJEemu8v-9gGlQEg" event="_XWw3gIjtEeiP-_qqZZR9Jg" port="_vAt58JawEemCgN1WwdiMbQ"/>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_jtqYsJatEemCgN1WwdiMbQ" kind="external" source="_Ygqn0JeJEemu8v-9gGlQEg" target="_KP3dwJavEemCgN1WwdiMbQ"/>
          <transition xmi:type="uml:Transition" xmi:id="_XzG4sJdREemu8v-9gGlQEg" kind="external" source="_RBQxcJdREemu8v-9gGlQEg" target="_V3QOAJdnEemu8v-9gGlQEg"/>
          <transition xmi:type="uml:Transition" xmi:id="_5tGKwJd5Eemu8v-9gGlQEg" kind="external" source="_sz3rAJd4Eemu8v-9gGlQEg" target="_5tDHcJd5Eemu8v-9gGlQEg"/>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_M-WEEIieEeiP-_qqZZR9Jg" kind="initial"/>
          <subvertex xmi:type="uml:State" xmi:id="_M-YgUIieEeiP-_qqZZR9Jg" name="TRACKING">
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_KPtFsJavEemCgN1WwdiMbQ" kind="entryPoint"/>
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_KP3dwJavEemCgN1WwdiMbQ" kind="entryPoint"/>
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_RBQxcJdREemu8v-9gGlQEg" kind="exitPoint"/>
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_5tDHcJd5Eemu8v-9gGlQEg" kind="entryPoint"/>
            <region xmi:type="uml:Region" xmi:id="_KPki0JavEemCgN1WwdiMbQ" name="Region1">
              <transition xmi:type="uml:Transition" xmi:id="_KRCF8JawEemCgN1WwdiMbQ" kind="local" source="_KPtFsJavEemCgN1WwdiMbQ" target="_tBEy4JavEemCgN1WwdiMbQ"/>
              <transition xmi:type="uml:Transition" xmi:id="_QJXLQJawEemCgN1WwdiMbQ" name="" kind="external" source="_tBEy4JavEemCgN1WwdiMbQ" target="_qP_yYJavEemCgN1WwdiMbQ">
                <effect xmi:type="uml:OpaqueBehavior" xmi:id="_AL1d8Ja4EemCgN1WwdiMbQ" name="Effect" isReentrant="false">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller][compass]: &quot;&lt;&lt;compass &lt;&lt; &quot;\n&quot;;
__compass = compass;</body>
                </effect>
                <trigger xmi:type="uml:Trigger" xmi:id="_FRGLwJaxEemCgN1WwdiMbQ" event="_2fMIkJauEemCgN1WwdiMbQ" port="_vAt58JawEemCgN1WwdiMbQ"/>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_QvpvMJawEemCgN1WwdiMbQ" name="" kind="external" source="_qP_yYJavEemCgN1WwdiMbQ" target="_HW-IkJawEemCgN1WwdiMbQ">
                <effect xmi:type="uml:OpaqueBehavior" xmi:id="_5PvUoJdeEemu8v-9gGlQEg" name="Effect" isReentrant="false">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller][playerPos]: &quot;&lt;&lt;playerX &lt;&lt;&quot;,&quot;&lt;&lt;playerZ&lt;&lt; &quot;\n&quot;;
__playerX = playerX;
__playerZ = playerZ;
</body>
                </effect>
                <trigger xmi:type="uml:Trigger" xmi:id="_YJ1zYJaxEemCgN1WwdiMbQ" event="_g3LeUJauEemCgN1WwdiMbQ" port="_vAt58JawEemCgN1WwdiMbQ"/>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_vEOEcJaxEemCgN1WwdiMbQ" kind="external" source="_HW-IkJawEemCgN1WwdiMbQ" target="_sSjwsJdXEemu8v-9gGlQEg">
                <effect xmi:type="uml:OpaqueBehavior" xmi:id="_8H2KMJdeEemu8v-9gGlQEg" name="Effect" isReentrant="false">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller][ballPos]: &quot;&lt;&lt;ballX &lt;&lt;&quot;,&quot;&lt;&lt;ballZ&lt;&lt; &quot;\n&quot;;
__ballX = ballX;
__ballZ = ballZ;

moveRL = false;
moveFB = false;</body>
                </effect>
                <trigger xmi:type="uml:Trigger" xmi:id="_voAG8JaxEemCgN1WwdiMbQ" event="_puRa0JauEemCgN1WwdiMbQ" port="_vAt58JawEemCgN1WwdiMbQ"/>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_71hB4JdPEemu8v-9gGlQEg" guard="_9o3AEJdVEemu8v-9gGlQEg" kind="external" source="_tK8D0JdPEemu8v-9gGlQEg" target="_wy3z0JdPEemu8v-9gGlQEg">
                <ownedRule xmi:type="uml:Constraint" xmi:id="_9o3AEJdVEemu8v-9gGlQEg">
                  <specification xmi:type="uml:OpaqueExpression" xmi:id="_9o3nIJdVEemu8v-9gGlQEg">
                    <language>C++</language>
                    <body>return moveFB;</body>
                  </specification>
                </ownedRule>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_9h_x0JdPEemu8v-9gGlQEg" guard="_-8WoQJdVEemu8v-9gGlQEg" kind="external" source="_tK8D0JdPEemu8v-9gGlQEg" target="_0cmTkJdPEemu8v-9gGlQEg">
                <ownedRule xmi:type="uml:Constraint" xmi:id="_-8WoQJdVEemu8v-9gGlQEg">
                  <specification xmi:type="uml:OpaqueExpression" xmi:id="_-8WoQZdVEemu8v-9gGlQEg">
                    <language>C++</language>
                    <body>return moveRL;</body>
                  </specification>
                </ownedRule>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_CVhyQJdQEemu8v-9gGlQEg" name="" kind="external" source="_wy3z0JdPEemu8v-9gGlQEg" target="_Bd3KcJdQEemu8v-9gGlQEg">
                <trigger xmi:type="uml:Trigger" xmi:id="_kVvjwJdaEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                  <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                </trigger>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_DZRHMJdQEemu8v-9gGlQEg" name="" kind="external" source="_0cmTkJdPEemu8v-9gGlQEg" target="_Bd3KcJdQEemu8v-9gGlQEg">
                <trigger xmi:type="uml:Trigger" xmi:id="_lr10AJdaEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                  <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                </trigger>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_4GsKQJdQEemu8v-9gGlQEg" name="" kind="external" source="_sSnbEJdXEemu8v-9gGlQEg" target="_tK8D0JdPEemu8v-9gGlQEg"/>
              <transition xmi:type="uml:Transition" xmi:id="_RBW4EJdREemu8v-9gGlQEg" name="GO_GRABBING" guard="_Ricw8JdnEemu8v-9gGlQEg" kind="external" source="_tK8D0JdPEemu8v-9gGlQEg" target="_RBQxcJdREemu8v-9gGlQEg">
                <ownedRule xmi:type="uml:Constraint" xmi:id="_Ricw8JdnEemu8v-9gGlQEg">
                  <specification xmi:type="uml:OpaqueExpression" xmi:id="_RidYAJdnEemu8v-9gGlQEg">
                    <language>C++</language>
                    <body>return !moveFB &amp;&amp; !moveRL;</body>
                  </specification>
                </ownedRule>
                <effect xmi:type="uml:OpaqueBehavior" xmi:id="_QoRyQJdoEemu8v-9gGlQEg" name="Effect" isReentrant="false">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[Go Grab the Ball]\n&lt;========================>\n&quot;;</body>
                </effect>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_GBSCkJdhEemu8v-9gGlQEg" kind="external" source="_Bd3KcJdQEemu8v-9gGlQEg" target="_BcSNYJdhEemu8v-9gGlQEg"/>
              <transition xmi:type="uml:Transition" xmi:id="_HN0HIJdhEemu8v-9gGlQEg" name="" kind="external" source="_BcSNYJdhEemu8v-9gGlQEg" target="_tBEy4JavEemCgN1WwdiMbQ">
                <trigger xmi:type="uml:Trigger" xmi:id="_OEKT4JdhEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                  <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                </trigger>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_d2NzMJdoEemu8v-9gGlQEg" kind="local" source="_KP3dwJavEemCgN1WwdiMbQ" target="_tBEy4JavEemCgN1WwdiMbQ"/>
              <transition xmi:type="uml:Transition" xmi:id="_BSTooJd6Eemu8v-9gGlQEg" kind="local" source="_5tDHcJd5Eemu8v-9gGlQEg" target="_BcSNYJdhEemu8v-9gGlQEg"/>
              <subvertex xmi:type="uml:State" xmi:id="_qP_yYJavEemCgN1WwdiMbQ" name="GET_PLAYER_POS">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_qP_yYZavEemCgN1WwdiMbQ" name="Entry">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller to observer]: getPlayerPos() \n&quot;;
observationPort.getPlayerPos().send();

</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:State" xmi:id="_tBEy4JavEemCgN1WwdiMbQ" name="GET_COMPASS">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_tBEy4ZavEemCgN1WwdiMbQ" name="Entry">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller -to observer]: getPlayerCompass() \n&quot;;
observationPort.getPlayerCompass().send();</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:State" xmi:id="_HW-IkJawEemCgN1WwdiMbQ" name="GET_BALL_POS">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_HW-IkZawEemCgN1WwdiMbQ" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller to observer]: getBallPos() \n&quot;;
observationPort.getBallPos().send();
</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:Pseudostate" xmi:id="_tK8D0JdPEemu8v-9gGlQEg" kind="choice"/>
              <subvertex xmi:type="uml:State" xmi:id="_wy3z0JdPEemu8v-9gGlQEg" name="MOVE_FB">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_9hgNIJdQEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::string cmd = &quot;player2,moveForward(&quot;+std::to_string(moveForwardPower)+&quot;)&quot;;

char* cmdCHAR = strcpy(new char[cmd.length() + 1], cmd.c_str());
observationPort.setCommand(cmdCHAR).send();

std::cout&lt;&lt;&quot;[MOVE_FB CMD]:&quot;&lt;&lt;cmd&lt;&lt;&quot; \n&quot;;
timer.informIn(UMLRTTimespec(0, 500000000));</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:State" xmi:id="_0cmTkJdPEemu8v-9gGlQEg" name="MOVE_RL">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_AQMoAJdREemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::string cmd = &quot;player2,moveRight(&quot;+std::to_string(moveRightPower)+&quot;)&quot;;
char* cmdCHAR = strcpy(new char[cmd.length() + 1], cmd.c_str());
observationPort.setCommand(cmdCHAR).send();

std::cout&lt;&lt;&quot;[MOVE_RL CMD]:&quot;&lt;&lt;cmd&lt;&lt;&quot; \n&quot;;
timer.informIn(UMLRTTimespec(0, 500000000));</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:Pseudostate" xmi:id="_Bd3KcJdQEemu8v-9gGlQEg" kind="junction"/>
              <subvertex xmi:type="uml:State" xmi:id="_As2u0JdREemu8v-9gGlQEg" name="CALC_MOVMENT_TO_BALL">
                <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_sSjwsJdXEemu8v-9gGlQEg" kind="entryPoint"/>
                <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_sSnbEJdXEemu8v-9gGlQEg" kind="exitPoint"/>
                <region xmi:type="uml:Region" xmi:id="_sScb8JdXEemu8v-9gGlQEg" name="Region1">
                  <transition xmi:type="uml:Transition" xmi:id="_zULZUJdXEemu8v-9gGlQEg" kind="local" source="_sSjwsJdXEemu8v-9gGlQEg" target="_tDCLYJdXEemu8v-9gGlQEg"/>
                  <transition xmi:type="uml:Transition" xmi:id="_0hKw4JdXEemu8v-9gGlQEg" kind="external" source="_tDCLYJdXEemu8v-9gGlQEg" target="_wKfEgJdXEemu8v-9gGlQEg">
                    <trigger xmi:type="uml:Trigger" xmi:id="_Qh8ekJdZEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                      <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                    </trigger>
                  </transition>
                  <transition xmi:type="uml:Transition" xmi:id="_1aTYUJdXEemu8v-9gGlQEg" name="" kind="external" source="_wKfEgJdXEemu8v-9gGlQEg" target="_sSnbEJdXEemu8v-9gGlQEg">
                    <effect xmi:type="uml:OpaqueBehavior" xmi:id="_QbvWoJdeEemu8v-9gGlQEg" name="Effect" isReentrant="false">
                      <language>C++</language>
                      <body>std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL][DONE!] \n&quot;;
std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL][moveRL]: &quot;&lt;&lt; moveRL &lt;&lt; &quot;\n&quot;;
std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL][moveFB]: &quot;&lt;&lt; moveFB &lt;&lt; &quot;\n&quot;;</body>
                    </effect>
                    <trigger xmi:type="uml:Trigger" xmi:id="_UTnZYJdZEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                      <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                    </trigger>
                  </transition>
                  <subvertex xmi:type="uml:State" xmi:id="_tDCLYJdXEemu8v-9gGlQEg" name="CALC MOVE FB">
                    <entry xmi:type="uml:OpaqueBehavior" xmi:id="_J2V-sJdYEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                      <language>C++</language>
                      <body>std::cout&lt;&lt;&quot;[CALC_FB_MOVMENT_TO_BALL] \n&quot;;

//CALC F/B based on the compass

if ((__compass >=45) &amp;&amp; (__compass &lt;135)){
	moveForward =  __playerZ - __ballZ;
	if ((__playerZ > 21.65) || (__playerZ &lt; -21.65) ){moveForwardPower = 0;}
	else if (moveForward > approaching_threshold){moveForwardPower = 100;}
	else if (moveForward &lt; approaching_threshold*-1){moveForwardPower = -100;}
	else {moveForwardPower = 0;}
std::cout&lt;&lt;&quot;[CALC_FB_MOVMENT_TO_BALL] 1\n&quot;;


}else if ((__compass >=135) &amp;&amp; (__compass &lt;225)){
	moveForward =  __playerX - __ballX;
	if ((__playerX > 40.99) || (__playerX &lt; -40.99)){moveForwardPower = 0;}
	else if (moveForward > approaching_threshold){moveForwardPower = 100;}
	else if (moveForward &lt; approaching_threshold*-1){moveForwardPower = -100;}
	else {moveForwardPower = 0;}
std::cout&lt;&lt;&quot;[CALC_FB_MOVMENT_TO_BALL] 2\n&quot;;

}else if ((__compass >=225) &amp;&amp; (__compass &lt;315)){
	moveForward =  __playerZ - __ballZ;
	if ((__playerZ > 21.65) || (__playerZ &lt; -21.65) ){moveForwardPower = 0;}
	if (moveForward > approaching_threshold){moveForwardPower = -100;}
	else if (moveForward &lt; approaching_threshold*-1){moveForwardPower = 100;}
	else {moveForwardPower = 0;}
std::cout&lt;&lt;&quot;[CALC_FB_MOVMENT_TO_BALL] 3\n&quot;;

}else if ((__compass >=315) &amp;&amp; (__compass &lt;45)){
	moveForward =  __playerX - __ballX;
	if ((__playerX > 40.99) || (__playerX &lt; -40.99)){moveForwardPower = 0;}
	if (moveForward > approaching_threshold){moveForwardPower = -100;}
	else if (moveForward &lt; approaching_threshold*-1){moveForwardPower = 100;}
	else {moveForwardPower = 0;}
std::cout&lt;&lt;&quot;[CALC_FB_MOVMENT_TO_BALL] 4\n&quot;;
}

if ((moveForwardPower == 0)){moveFB = false;}else {moveFB = true;}

std::cout&lt;&lt;&quot;[CALC_FB_MOVMENT_TO_BALL][moveForwardPower]: &quot;&lt;&lt; moveForwardPower &lt;&lt; &quot;\n&quot;;

timer.informIn(UMLRTTimespec(0, 1000));
</body>
                    </entry>
                  </subvertex>
                  <subvertex xmi:type="uml:State" xmi:id="_wKfEgJdXEemu8v-9gGlQEg" name="CALC MOVE RL">
                    <entry xmi:type="uml:OpaqueBehavior" xmi:id="_K7nvQJdZEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                      <language>C++</language>
                      <body>std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL] \n&quot;;

//CALC R/L based on the compass

if ((__compass >=45) &amp;&amp; (__compass &lt;135)){
	moveRight =  __playerX - __ballX;
	if ((__playerX > 40.99) || (__playerX &lt; -40.99)){moveRightPower = 0;}
	else if (moveRight > approaching_threshold){moveRightPower = -100;}
	else if (moveRight &lt; approaching_threshold*-1){moveRightPower = 100;}
	else {moveRightPower = 0;}
std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL] 1 \n&quot;;

}else if ((__compass >=135) &amp;&amp; (__compass &lt;225)){
	moveRight =  __playerZ - __ballZ;
	if ((__playerZ > 21.65) || (__playerZ &lt; -21.65)){moveRightPower = 0;}
	else if (moveRight > approaching_threshold){moveRightPower = 100;}
	else if (moveRight &lt; approaching_threshold*-1){moveRightPower = -100;}
	else {moveRightPower = 0;}
std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL] 2 \n&quot;;


}else if ((__compass >=225) &amp;&amp; (__compass &lt;315)){
	moveRight =  __playerX - __ballX;
	if ((__playerX > 40.99) || (__playerX &lt; -40.99)){moveRightPower = 0;}
	else if (moveRight > approaching_threshold){moveRightPower = 100;}
	else if (moveRight &lt; approaching_threshold*-1){moveRightPower = -100;}
	else {moveRightPower = 0;}
std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL] 3 \n&quot;;

}else if ((__compass >=315) &amp;&amp; (__compass &lt;45)){
	moveRight =  __playerZ - __ballZ;
	if ((__playerZ > 21.65) || (__playerZ &lt; -21.65)){moveRightPower = 0;}
	else if (moveRight > approaching_threshold){moveRightPower = -100;}
	else if (moveRight &lt; approaching_threshold*-1){moveRightPower = 100;}
	else {moveRightPower = 0;}
std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL] 4 \n&quot;;
}

if ((moveRightPower != 0) &amp;&amp; (moveForwardPower == 0)){moveRL = true;}else {moveRL = false;}

std::cout&lt;&lt;&quot;[CALC_RL_MOVMENT_TO_BALL][moveRightPower]: &quot;&lt;&lt; moveRightPower &lt;&lt; &quot;\n&quot;;

timer.informIn(UMLRTTimespec(0, 1000));
</body>
                    </entry>
                  </subvertex>
                </region>
              </subvertex>
              <subvertex xmi:type="uml:State" xmi:id="_BcSNYJdhEemu8v-9gGlQEg" name="STOP">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_Ltv2IJdhEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::string cmd = &quot;player2,stop()&quot;;
char* cmdCHAR = strcpy(new char[cmd.length() + 1], cmd.c_str());
observationPort.setCommand(cmdCHAR).send();

std::cout&lt;&lt;&quot;[STOP CMD]:&quot;&lt;&lt;cmd&lt;&lt;&quot; \n&quot;;
timer.informIn(UMLRTTimespec(0, 500000000));</body>
                </entry>
              </subvertex>
            </region>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_TgbVEJatEemCgN1WwdiMbQ" name="GRABBING">
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_V3QOAJdnEemu8v-9gGlQEg" kind="entryPoint"/>
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_V3TRUJdnEemu8v-9gGlQEg" kind="exitPoint"/>
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_sz3rAJd4Eemu8v-9gGlQEg" kind="exitPoint"/>
            <region xmi:type="uml:Region" xmi:id="_V3NxwJdnEemu8v-9gGlQEg" name="Region1">
              <transition xmi:type="uml:Transition" xmi:id="_qEVyYJdnEemu8v-9gGlQEg" kind="local" source="_V3QOAJdnEemu8v-9gGlQEg" target="_XLutoJdnEemu8v-9gGlQEg"/>
              <transition xmi:type="uml:Transition" xmi:id="_q9n7EJd4Eemu8v-9gGlQEg" name="" kind="external" source="_XLutoJdnEemu8v-9gGlQEg" target="_gFG5YJd4Eemu8v-9gGlQEg">
                <trigger xmi:type="uml:Trigger" xmi:id="_3GDFcJd4Eemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                  <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                </trigger>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_tcPSkJd4Eemu8v-9gGlQEg" name="NO" guard="_p0ghcJd5Eemu8v-9gGlQEg" kind="external" source="_gFG5YJd4Eemu8v-9gGlQEg" target="_sz3rAJd4Eemu8v-9gGlQEg">
                <ownedRule xmi:type="uml:Constraint" xmi:id="_p0ghcJd5Eemu8v-9gGlQEg">
                  <specification xmi:type="uml:OpaqueExpression" xmi:id="_p0ghcZd5Eemu8v-9gGlQEg">
                    <language>C++</language>
                    <body>return !ballAchiveable;</body>
                  </specification>
                </ownedRule>
                <effect xmi:type="uml:OpaqueBehavior" xmi:id="_wOtkwJd5Eemu8v-9gGlQEg" name="Effect" isReentrant="false">
                  <language>C++</language>
                  <body>std::cout&lt;&lt;&quot;NO&quot;&lt;&lt;&quot;\n&quot;;</body>
                </effect>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_wPO-oJd4Eemu8v-9gGlQEg" name="YES" guard="_qvyd8Jd5Eemu8v-9gGlQEg" kind="external" source="_gFG5YJd4Eemu8v-9gGlQEg" target="_n-cNIJd4Eemu8v-9gGlQEg">
                <ownedRule xmi:type="uml:Constraint" xmi:id="_qvyd8Jd5Eemu8v-9gGlQEg">
                  <specification xmi:type="uml:OpaqueExpression" xmi:id="_qvyd8Zd5Eemu8v-9gGlQEg">
                    <language>C++</language>
                    <body>return ballAchiveable;</body>
                  </specification>
                </ownedRule>
                <effect xmi:type="uml:OpaqueBehavior" xmi:id="_vCuSwJd5Eemu8v-9gGlQEg" name="Effect" isReentrant="false">
                  <language>C++</language>
                  <body>std::cout&lt;&lt;&quot;YES&quot;&lt;&lt;&quot;\n&quot;;

</body>
                </effect>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_aHxLsJeNEemu8v-9gGlQEg" name="" kind="external" source="_n-cNIJd4Eemu8v-9gGlQEg" target="_3_GrAJeREemu8v-9gGlQEg">
                <trigger xmi:type="uml:Trigger" xmi:id="_nB9UwJeOEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                  <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                </trigger>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_a-5A8JeNEemu8v-9gGlQEg" guard="_XRKqoJeQEemu8v-9gGlQEg" kind="external" source="_Xlmw8JeNEemu8v-9gGlQEg" target="_EGH_0JeVEemu8v-9gGlQEg">
                <ownedRule xmi:type="uml:Constraint" xmi:id="_XRKqoJeQEemu8v-9gGlQEg">
                  <specification xmi:type="uml:OpaqueExpression" xmi:id="_XRLRsJeQEemu8v-9gGlQEg">
                    <language>C++</language>
                    <body>return !compassAdjusted;</body>
                  </specification>
                </ownedRule>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="__-hgAJeOEemu8v-9gGlQEg" name="" kind="external" source="_vQxJQJeOEemu8v-9gGlQEg" target="_Xlmw8JeNEemu8v-9gGlQEg">
                <effect xmi:type="uml:OpaqueBehavior" xmi:id="_PoISIJePEemu8v-9gGlQEg" name="Effect" isReentrant="false">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller][compass]: &quot;&lt;&lt;compass &lt;&lt; &quot;\n&quot;;
__compass = compass;

int angleINT = angle;
int __compassINT = __compass;

if (abs(abs(angleINT) - abs(__compassINT)) &lt;= 10)
	compassAdjusted = true;
else
	compassAdjusted = false;</body>
                </effect>
                <trigger xmi:type="uml:Trigger" xmi:id="_AyAycJePEemu8v-9gGlQEg" event="_2fMIkJauEemCgN1WwdiMbQ" port="_vAt58JawEemCgN1WwdiMbQ"/>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_Af9jsJeQEemu8v-9gGlQEg" guard="_cxXj0JeQEemu8v-9gGlQEg" kind="external" source="_Xlmw8JeNEemu8v-9gGlQEg" target="_81130JeOEemu8v-9gGlQEg">
                <ownedRule xmi:type="uml:Constraint" xmi:id="_cxXj0JeQEemu8v-9gGlQEg">
                  <specification xmi:type="uml:OpaqueExpression" xmi:id="_cxXj0ZeQEemu8v-9gGlQEg">
                    <language>C++</language>
                    <body>return compassAdjusted;</body>
                  </specification>
                </ownedRule>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_A08DQJeSEemu8v-9gGlQEg" name="" kind="external" source="_3_GrAJeREemu8v-9gGlQEg" target="_vQxJQJeOEemu8v-9gGlQEg">
                <trigger xmi:type="uml:Trigger" xmi:id="_BishIJeSEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                  <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                </trigger>
              </transition>
              <transition xmi:type="uml:Transition" xmi:id="_KyKaAJeVEemu8v-9gGlQEg" name="" kind="external" source="_EGH_0JeVEemu8v-9gGlQEg" target="_n-cNIJd4Eemu8v-9gGlQEg">
                <trigger xmi:type="uml:Trigger" xmi:id="_SvGbYJeVEemu8v-9gGlQEg" port="_xFvwEIieEeiP-_qqZZR9Jg">
                  <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_IaEO8HDxEeSwWKwNKw1iAA"/>
                </trigger>
              </transition>
              <subvertex xmi:type="uml:State" xmi:id="_XLutoJdnEemu8v-9gGlQEg" name="IS_BALL_ACHIVEABLE">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_pLmzkJdnEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::cout&lt;&lt;&quot;[Is the ball still in the range ?!]&quot;&lt;&lt;&quot;\n&quot;;
int __playerXINT = __playerX;
int __playerZINT = __playerZ;
int __ballXINT = __ballX;
int __ballZINT = __ballZ;

std::cout&lt;&lt;&quot;[Range][abs(abs(__playerXINT) - abs(__ballXINT))]&quot;&lt;&lt; abs(abs(__playerXINT) - abs(__ballXINT)) &lt;&lt;&quot;\n&quot;;
std::cout&lt;&lt;&quot;[Range][abs(abs(__playerZINT) - abs(__ballZINT)]&quot;&lt;&lt; abs(abs(__playerZINT) - abs(__ballZINT)) &lt;&lt;&quot;\n&quot;;

if ( (abs(abs(__playerXINT) - abs(__ballXINT)) &lt; 6) &amp;&amp; (abs(abs(__playerZINT) - abs(__ballZINT)) &lt; 6))  
	ballAchiveable = true;
else 
	ballAchiveable = false;
 
observationPort.setCommand(&quot;player2,setsetSuction(100)&quot;).send();

std::cout&lt;&lt;&quot;[SUCK CMD]:[player2,setsetSuction(100)] \n&quot;;
timer.informIn(UMLRTTimespec(0, 500000000));</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:Pseudostate" xmi:id="_gFG5YJd4Eemu8v-9gGlQEg" kind="choice"/>
              <subvertex xmi:type="uml:State" xmi:id="_n-cNIJd4Eemu8v-9gGlQEg" name="CALC_SPIN">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_BQVIIJd5Eemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::cout&lt;&lt;&quot;[CALC SPIN]&quot;&lt;&lt;&quot;\n&quot;;

int __playerXINT = __playerX;
int __playerZINT = __playerZ;
int __ballXINT = __ballX;
int __ballZINT = __ballZ;
int spinPower = 0;

int rangeX = abs(abs(__playerXINT) - abs(__ballXINT));
int rangeZ = abs(abs(__playerZINT) - abs(__ballZINT));

angle = atan2(__playerZ - __ballZ, __playerX - __ballX);

std::cout&lt;&lt;&quot;[angle]:&quot;&lt;&lt; angle * 180 / 3.14&lt;&lt;&quot;\n&quot;;

if (__compass &lt; angle )
	spinPower = 50;
else if (__compass > angle )
	spinPower = -50;

std::string cmd = &quot;player2,spin(&quot;+std::to_string(spinPower)+&quot;)&quot;;
char* cmdCHAR = strcpy(new char[cmd.length() + 1], cmd.c_str());
observationPort.setCommand(cmdCHAR).send();
std::cout&lt;&lt;&quot;[MOVE_RL CMD]:&quot;&lt;&lt;cmd&lt;&lt;&quot; \n&quot;;

timer.informIn(UMLRTTimespec(0, 500000000));</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:Pseudostate" xmi:id="_Xlmw8JeNEemu8v-9gGlQEg" kind="choice"/>
              <subvertex xmi:type="uml:State" xmi:id="_vQxJQJeOEemu8v-9gGlQEg" name="UPDATE_COMPASS">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_2XmpEJeOEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body> std::cout&lt;&lt;&quot;[controller to observer]: getPlayerCompass() \n&quot;;
observationPort.getPlayerCompass().send();</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:State" xmi:id="_81130JeOEemu8v-9gGlQEg" name="GRAB_BALL">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_cBMgkJePEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::cout&lt;&lt;&quot;[GRAB BALL]&quot;&lt;&lt;&quot;\n&quot;;</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:State" xmi:id="_3_GrAJeREemu8v-9gGlQEg" name="STOP">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_5Z84YJeREemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::string cmd = &quot;player2,stop()&quot;;
char* cmdCHAR = strcpy(new char[cmd.length() + 1], cmd.c_str());
observationPort.setCommand(cmdCHAR).send();

std::cout&lt;&lt;&quot;[STOP CMD]:&quot;&lt;&lt;cmd&lt;&lt;&quot; \n&quot;;
timer.informIn(UMLRTTimespec(0, 500000000));</body>
                </entry>
              </subvertex>
              <subvertex xmi:type="uml:State" xmi:id="_EGH_0JeVEemu8v-9gGlQEg" name="SET_SUCKTION">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_NEHOgJeVEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>observationPort.setCommand(&quot;player2,setsetSuction(100)&quot;).send();

std::cout&lt;&lt;&quot;[SUCK CMD]:[player2,setsetSuction(100)] \n&quot;;
timer.informIn(UMLRTTimespec(0, 500000000));</body>
                </entry>
              </subvertex>
            </region>
          </subvertex>
          <subvertex xmi:type="uml:State" xmi:id="_ZQlV0JatEemCgN1WwdiMbQ" name="SCORING">
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_YgnkgJeJEemu8v-9gGlQEg" kind="entryPoint"/>
            <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_Ygqn0JeJEemu8v-9gGlQEg" kind="exitPoint"/>
            <region xmi:type="uml:Region" xmi:id="_YglIQJeJEemu8v-9gGlQEg" name="Region1">
              <transition xmi:type="uml:Transition" xmi:id="_cC9C0JeJEemu8v-9gGlQEg" kind="local" source="_YgnkgJeJEemu8v-9gGlQEg" target="_ZiiUgJeJEemu8v-9gGlQEg"/>
              <subvertex xmi:type="uml:State" xmi:id="_ZiiUgJeJEemu8v-9gGlQEg" name="State1">
                <entry xmi:type="uml:OpaqueBehavior" xmi:id="_fYhQcJeJEemu8v-9gGlQEg" name="Entry" isReentrant="false">
                  <language>C++</language>
                  <body>std::cout&lt;&lt;&quot;[SCORING] \n&quot;;</body>
                </entry>
              </subvertex>
            </region>
          </subvertex>
        </region>
      </ownedBehavior>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_dCrcEIgqEeiP-_qqZZR9Jg" name="ObservationProtocol">
      <packagedElement xmi:type="uml:Collaboration" xmi:id="_dCmjkIgqEeiP-_qqZZR9Jg" name="ObservationProtocol">
        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_dCzX4IgqEeiP-_qqZZR9Jg" client="_dCmjkIgqEeiP-_qqZZR9Jg" supplier="_dCvtgIgqEeiP-_qqZZR9Jg" contract="_dCvtgIgqEeiP-_qqZZR9Jg"/>
        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_dC76wIgqEeiP-_qqZZR9Jg" client="_dCmjkIgqEeiP-_qqZZR9Jg" supplier="_dC43cYgqEeiP-_qqZZR9Jg" contract="_dC43cYgqEeiP-_qqZZR9Jg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_dCvtgIgqEeiP-_qqZZR9Jg" name="ObservationProtocol">
        <ownedOperation xmi:type="uml:Operation" xmi:id="_X9e5wJauEemCgN1WwdiMbQ" name="getPlayerPos"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_ZkvLcJauEemCgN1WwdiMbQ" name="getBallPos"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_bjZQgJauEemCgN1WwdiMbQ" name="getPlayerCompass"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_NwDfoJayEemCgN1WwdiMbQ" name="setCommand">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_OAhkkJayEemCgN1WwdiMbQ" name="cmd">
            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_zgISAJdUEemu8v-9gGlQEg" name="getMovementDirection"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_dC1NEIgqEeiP-_qqZZR9Jg" name="ObservationProtocol~">
        <ownedOperation xmi:type="uml:Operation" xmi:id="_hjx90IgsEeiP-_qqZZR9Jg" name="goTracking"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_VyfoYIjtEeiP-_qqZZR9Jg" name="goGrabbing"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_XWrX8IjtEeiP-_qqZZR9Jg" name="goScoring"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_g3F-wJauEemCgN1WwdiMbQ" name="playerPos">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_iz30gJauEemCgN1WwdiMbQ" name="playerX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_mEYjAJauEemCgN1WwdiMbQ" name="playerZ">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_puMiUJauEemCgN1WwdiMbQ" name="ballPos">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_q7cYkJauEemCgN1WwdiMbQ" name="ballX">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_s_pE8JauEemCgN1WwdiMbQ" name="ballZ">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_2fK6cJauEemCgN1WwdiMbQ" name="playerCompass">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_4hqWoJauEemCgN1WwdiMbQ" name="compass">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_8LyakJdUEemu8v-9gGlQEg" name="setMovementDirection">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="__jvN0JdUEemu8v-9gGlQEg" name="moveFB">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
          </ownedParameter>
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_KZTCIJdVEemu8v-9gGlQEg" name="moveRL">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Usage" xmi:id="_dC4QYIgqEeiP-_qqZZR9Jg" client="_dCmjkIgqEeiP-_qqZZR9Jg" supplier="_dC1NEIgqEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_dC43cIgqEeiP-_qqZZR9Jg" name="*"/>
      <packagedElement xmi:type="uml:Interface" xmi:id="_dC43cYgqEeiP-_qqZZR9Jg" name="ObservationProtocolIO"/>
      <packagedElement xmi:type="uml:Usage" xmi:id="_dC8h0IgqEeiP-_qqZZR9Jg" client="_dCmjkIgqEeiP-_qqZZR9Jg" supplier="_dC43cYgqEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_hkGG4IgsEeiP-_qqZZR9Jg" operation="_hjx90IgsEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_VylH8IjtEeiP-_qqZZR9Jg" operation="_VyfoYIjtEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_XWw3gIjtEeiP-_qqZZR9Jg" operation="_XWrX8IjtEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_X9lAYJauEemCgN1WwdiMbQ" operation="_X9e5wJauEemCgN1WwdiMbQ"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_Zk1SEJauEemCgN1WwdiMbQ" operation="_ZkvLcJauEemCgN1WwdiMbQ"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_bjhMUJauEemCgN1WwdiMbQ" operation="_bjZQgJauEemCgN1WwdiMbQ"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_g3LeUJauEemCgN1WwdiMbQ" operation="_g3F-wJauEemCgN1WwdiMbQ"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_puRa0JauEemCgN1WwdiMbQ" operation="_puMiUJauEemCgN1WwdiMbQ"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_2fMIkJauEemCgN1WwdiMbQ" operation="_2fK6cJauEemCgN1WwdiMbQ"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_NwKNUJayEemCgN1WwdiMbQ" operation="_NwDfoJayEemCgN1WwdiMbQ"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_zgTRIJdUEemu8v-9gGlQEg" operation="_zgISAJdUEemu8v-9gGlQEg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_8L1d4JdUEemu8v-9gGlQEg" operation="_8LyakJdUEemu8v-9gGlQEg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_U7tYsIidEeiP-_qqZZR9Jg" name="ControlProtocol">
      <packagedElement xmi:type="uml:Collaboration" xmi:id="_U7rjgIidEeiP-_qqZZR9Jg" name="ControlProtocol">
        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_U7yRMIidEeiP-_qqZZR9Jg" client="_U7rjgIidEeiP-_qqZZR9Jg" supplier="_U7wcAIidEeiP-_qqZZR9Jg" contract="_U7wcAIidEeiP-_qqZZR9Jg"/>
        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_U72ioIidEeiP-_qqZZR9Jg" client="_U7rjgIidEeiP-_qqZZR9Jg" supplier="_U70tcIidEeiP-_qqZZR9Jg" contract="_U70tcIidEeiP-_qqZZR9Jg"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_U7wcAIidEeiP-_qqZZR9Jg" name="ControlProtocol">
        <ownedOperation xmi:type="uml:Operation" xmi:id="_dJmnMIidEeiP-_qqZZR9Jg" name="position">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_hjYq4IidEeiP-_qqZZR9Jg" name="x">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_iuUM8IidEeiP-_qqZZR9Jg" name="y">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_egNNwIidEeiP-_qqZZR9Jg" name="rotation">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_k2zjcIidEeiP-_qqZZR9Jg" name="degrees">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_tGDRoIjxEeiP-_qqZZR9Jg" name="ack"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_U7y4QIidEeiP-_qqZZR9Jg" name="ControlProtocol~">
        <ownedOperation xmi:type="uml:Operation" xmi:id="_WjhEAIidEeiP-_qqZZR9Jg" name="getGPS"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_YQY1gIidEeiP-_qqZZR9Jg" name="getCompass"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_PV1bsIilEeiP-_qqZZR9Jg" name="setPower">
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_ShMkcIilEeiP-_qqZZR9Jg" name="left">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
          </ownedParameter>
          <ownedParameter xmi:type="uml:Parameter" xmi:id="_ThIXcIilEeiP-_qqZZR9Jg" name="right">
            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
          </ownedParameter>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Usage" xmi:id="_U70GYIidEeiP-_qqZZR9Jg" client="_U7rjgIidEeiP-_qqZZR9Jg" supplier="_U7y4QIidEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_U70GYYidEeiP-_qqZZR9Jg" name="*"/>
      <packagedElement xmi:type="uml:Interface" xmi:id="_U70tcIidEeiP-_qqZZR9Jg" name="ControlProtocolIO"/>
      <packagedElement xmi:type="uml:Usage" xmi:id="_U72ioYidEeiP-_qqZZR9Jg" client="_U7rjgIidEeiP-_qqZZR9Jg" supplier="_U70tcIidEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_WjhrEIidEeiP-_qqZZR9Jg" operation="_WjhEAIidEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_YQZckIidEeiP-_qqZZR9Jg" operation="_YQY1gIidEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_dJocYIidEeiP-_qqZZR9Jg" operation="_dJmnMIidEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_egOb4IidEeiP-_qqZZR9Jg" operation="_egNNwIidEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_PV2CwIilEeiP-_qqZZR9Jg" operation="_PV1bsIilEeiP-_qqZZR9Jg"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_tGIxMIjxEeiP-_qqZZR9Jg" operation="_tGDRoIjxEeiP-_qqZZR9Jg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_VuOiEJXsEemnlJvKCgeTXw" name="Referee" classifierBehavior="_RGj98JXtEemnlJvKCgeTXw" isActive="true">
      <ownedAttribute xmi:type="uml:Port" xmi:id="_14z9wJXtEemnlJvKCgeTXw" name="log" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_6kIb0IeXEeSVyrlWP4nYew"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_2nGAEJXtEemnlJvKCgeTXw" name="tcp" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_tEiNsa1CEeeZPMea3Z4z9w"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_37u3wJXtEemnlJvKCgeTXw" name="timer" visibility="protected" isOrdered="true" aggregation="composite" isBehavior="true" isService="false">
        <type xmi:type="uml:Collaboration" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_MxQZgGXsEeS_4daqvwyFrg"/>
      </ownedAttribute>
      <ownedAttribute xmi:type="uml:Port" xmi:id="_iSOGwJXvEemnlJvKCgeTXw" name="refereeProtocol" visibility="public" type="_ibMj8JXsEemnlJvKCgeTXw" isOrdered="true" aggregation="composite" isBehavior="true" isConjugated="false" isService="true"/>
      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_RGj98JXtEemnlJvKCgeTXw" name="StateMachine" isReentrant="false">
        <region xmi:type="uml:Region" xmi:id="_RG244JXtEemnlJvKCgeTXw" name="Region">
          <transition xmi:type="uml:Transition" xmi:id="_RHGJcJXtEemnlJvKCgeTXw" name="Initial" source="_RG8YcJXtEemnlJvKCgeTXw" target="_RHBQ8JXtEemnlJvKCgeTXw">
            <effect xmi:type="uml:OpaqueBehavior" xmi:id="_auZa4JXtEemnlJvKCgeTXw" name="Effect" isReentrant="false">
              <language>C++</language>
              <body>tcp.connect(&quot;127.0.0.1&quot;,9007);</body>
            </effect>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_veQVIJXtEemnlJvKCgeTXw" name="" kind="external" source="_RHBQ8JXtEemnlJvKCgeTXw" target="_tWWNcJXtEemnlJvKCgeTXw">
            <trigger xmi:type="uml:Trigger" xmi:id="_84bbQJXtEemnlJvKCgeTXw" port="_2nGAEJXtEemnlJvKCgeTXw">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_s9iNgMT3Eei7WtNtKyCSvw"/>
            </trigger>
          </transition>
          <transition xmi:type="uml:Transition" xmi:id="_T4C8MJXvEemnlJvKCgeTXw" name="" kind="external" source="_tWWNcJXtEemnlJvKCgeTXw" target="_SU9Y0JXvEemnlJvKCgeTXw">
            <trigger xmi:type="uml:Trigger" xmi:id="_Xl0PYJaoEemCgN1WwdiMbQ" port="_2nGAEJXtEemnlJvKCgeTXw">
              <event xmi:type="uml:CallEvent" href="pathmap://UMLRTRTSLIB/UMLRT-RTS.uml#_zwyoUK1YEee74Ow6RXIGBA"/>
            </trigger>
          </transition>
          <subvertex xmi:type="uml:Pseudostate" xmi:id="_RG8YcJXtEemnlJvKCgeTXw" kind="initial"/>
          <subvertex xmi:type="uml:State" xmi:id="_RHBQ8JXtEemnlJvKCgeTXw" name="CONNECTING"/>
          <subvertex xmi:type="uml:State" xmi:id="_tWWNcJXtEemnlJvKCgeTXw" name="IDLE"/>
          <subvertex xmi:type="uml:State" xmi:id="_SU9Y0JXvEemnlJvKCgeTXw" name="GET_MSG">
            <entry xmi:type="uml:OpaqueBehavior" xmi:id="_Y_T7gJXwEemnlJvKCgeTXw" name="Entry" isReentrant="false">
              <language>C++</language>
              <body> std::cout&lt;&lt;&quot;[REFEREE][RECEIVED]: &quot;&lt;&lt; payload &lt;&lt;&quot;\n&quot;;

std::string payloadStr (payload);

int pos1 = payloadStr.find(&quot;Possesion&quot;);
if (pos1 != -1)
	refereeProtocol.getBallPossesion().send();


pos1 = payloadStr.find(&quot;TimeOut&quot;);
if (pos1 != -1)
	refereeProtocol.getTimeout().send();


pos1 = payloadStr.find(&quot;scored&quot;);
if (pos1 != -1)
	refereeProtocol.getScored().send();


//timer.informIn(UMLRTTimespec(0, 100000000));</body>
            </entry>
          </subvertex>
        </region>
      </ownedBehavior>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_ibYKIJXsEemnlJvKCgeTXw" name="RefereeProtocol">
      <packagedElement xmi:type="uml:Collaboration" xmi:id="_ibMj8JXsEemnlJvKCgeTXw" name="RefereeProtocol">
        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_ibjJQJXsEemnlJvKCgeTXw" client="_ibMj8JXsEemnlJvKCgeTXw" supplier="_ibe30JXsEemnlJvKCgeTXw" contract="_ibe30JXsEemnlJvKCgeTXw"/>
        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_ibzn8JXsEemnlJvKCgeTXw" client="_ibMj8JXsEemnlJvKCgeTXw" supplier="_ibuIYJXsEemnlJvKCgeTXw" contract="_ibuIYJXsEemnlJvKCgeTXw"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_ibe30JXsEemnlJvKCgeTXw" name="RefereeProtocol"/>
      <packagedElement xmi:type="uml:Interface" xmi:id="_ibnasJXsEemnlJvKCgeTXw" name="RefereeProtocol~">
        <ownedOperation xmi:type="uml:Operation" xmi:id="_2htmQJXsEemnlJvKCgeTXw" name="getTimeout"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_Co4zcJXtEemnlJvKCgeTXw" name="getScored"/>
        <ownedOperation xmi:type="uml:Operation" xmi:id="_8wevMJaoEemCgN1WwdiMbQ" name="getBallPossesion"/>
      </packagedElement>
      <packagedElement xmi:type="uml:Usage" xmi:id="_ibsTMJXsEemnlJvKCgeTXw" client="_ibMj8JXsEemnlJvKCgeTXw" supplier="_ibnasJXsEemnlJvKCgeTXw"/>
      <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_ibthUJXsEemnlJvKCgeTXw" name="*"/>
      <packagedElement xmi:type="uml:Interface" xmi:id="_ibuIYJXsEemnlJvKCgeTXw" name="RefereeProtocolIO"/>
      <packagedElement xmi:type="uml:Usage" xmi:id="_ib02EJXsEemnlJvKCgeTXw" client="_ibMj8JXsEemnlJvKCgeTXw" supplier="_ibuIYJXsEemnlJvKCgeTXw"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_2hxQoJXsEemnlJvKCgeTXw" operation="_2htmQJXsEemnlJvKCgeTXw"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_Co9r8JXtEemnlJvKCgeTXw" operation="_Co4zcJXtEemnlJvKCgeTXw"/>
      <packagedElement xmi:type="uml:CallEvent" xmi:id="_8wjAoJaoEemCgN1WwdiMbQ" operation="_8wevMJaoEemCgN1WwdiMbQ"/>
    </packagedElement>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_FX4as4gqEeiP-_qqZZR9Jg">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FX4atIgqEeiP-_qqZZR9Jg" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
      </eAnnotations>
      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
    </profileApplication>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_FX4atYgqEeiP-_qqZZR9Jg">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FX4atogqEeiP-_qqZZR9Jg" 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 xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/>
    </profileApplication>
    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_FX4at4gqEeiP-_qqZZR9Jg">
      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FX4auIgqEeiP-_qqZZR9Jg" 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 xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
    </profileApplication>
  </uml:Model>
  <UMLRealTime:Capsule xmi:id="_HUbm8IgqEeiP-_qqZZR9Jg" base_Class="_HR_-AIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:Capsule xmi:id="_IQrMwIgqEeiP-_qqZZR9Jg" base_Class="_IQj4AIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:Capsule xmi:id="_J_vWoIgqEeiP-_qqZZR9Jg" base_Class="_J_oo8IgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:CapsulePart xmi:id="_WIKhAIgqEeiP-_qqZZR9Jg" base_Property="_WIGPkIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:ProtocolContainer xmi:id="_dCt4UIgqEeiP-_qqZZR9Jg" base_Package="_dCrcEIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTMessageSet xmi:id="_dCyJwIgqEeiP-_qqZZR9Jg" base_Interface="_dCvtgIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTMessageSet xmi:id="_dC3CQIgqEeiP-_qqZZR9Jg" base_Interface="_dC1NEIgqEeiP-_qqZZR9Jg" rtMsgKind="out"/>
  <UMLRealTime:RTMessageSet xmi:id="_dC6soIgqEeiP-_qqZZR9Jg" base_Interface="_dC43cYgqEeiP-_qqZZR9Jg" rtMsgKind="inOut"/>
  <UMLRealTime:Protocol xmi:id="_dC9I4IgqEeiP-_qqZZR9Jg" base_Collaboration="_dCmjkIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_YHqBoIgsEeiP-_qqZZR9Jg" isPublish="false" isWired="true" base_Port="_YHmXQIgsEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_TnWpwIgtEeiP-_qqZZR9Jg" isPublish="false" isWired="false" base_Port="_TnTmcIgtEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_UUOW0IgtEeiP-_qqZZR9Jg" isPublish="false" isWired="false" base_Port="_UULTgIgtEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_aLUGAIgtEeiP-_qqZZR9Jg" base_Pseudostate="_aLRCsIgtEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTState xmi:id="_aLYXcIgtEeiP-_qqZZR9Jg" base_State="_aLWiQIgtEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTRegion xmi:id="_aLazsIgtEeiP-_qqZZR9Jg" base_Region="_aLOmcIgtEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTStateMachine xmi:id="_aLg6UIgtEeiP-_qqZZR9Jg" base_StateMachine="_aLDAQIgtEeiP-_qqZZR9Jg"/>
  <RTCppProperties:CapsuleProperties xmi:id="_zmc_cIg0EeiP-_qqZZR9Jg" headerPreface="#include &lt;string>&#xA;#include &lt;iostream>&#xA;#include &lt;stdlib.h>&#xA;#include &lt;stdio.h>&#xA;#include &lt;cstring>&#xA;" implementationPreface="#include &lt;sys/socket.h>&#xA;#include &lt;netinet/in.h>&#xA;#include &lt;arpa/inet.h>" base_Class="_IQj4AIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_oLfwUIg6EeiP-_qqZZR9Jg" isPublish="false" isWired="false" base_Port="_oLctAIg6EeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTRegion xmi:id="_uUu_cIg6EeiP-_qqZZR9Jg" base_Region="_uUoRwIg6EeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTStateMachine xmi:id="_uUyCwIg6EeiP-_qqZZR9Jg" base_StateMachine="_uUhkEIg6EeiP-_qqZZR9Jg"/>
  <RTCppProperties:CapsuleProperties xmi:id="_cC8DQIhfEeiP-_qqZZR9Jg" headerPreface="#include &lt;string>&#xA;#include &lt;iostream>&#xA;#include &lt;stdlib.h>&#xA;#include &lt;stdio.h>&#xA;#include &lt;cstring>&#xA;" implementationPreface="#include &lt;sys/socket.h>&#xA;#include &lt;netinet/in.h>&#xA;#include &lt;arpa/inet.h>&#xA;#include &lt;math.h> " base_Class="_J_oo8IgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:ProtocolContainer xmi:id="_U7vN4IidEeiP-_qqZZR9Jg" base_Package="_U7tYsIidEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTMessageSet xmi:id="_U7xqIIidEeiP-_qqZZR9Jg" base_Interface="_U7wcAIidEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTMessageSet xmi:id="_U7zfUIidEeiP-_qqZZR9Jg" base_Interface="_U7y4QIidEeiP-_qqZZR9Jg" rtMsgKind="out"/>
  <UMLRealTime:RTMessageSet xmi:id="_U717kIidEeiP-_qqZZR9Jg" base_Interface="_U70tcIidEeiP-_qqZZR9Jg" rtMsgKind="inOut"/>
  <UMLRealTime:Protocol xmi:id="_U73JsIidEeiP-_qqZZR9Jg" base_Collaboration="_U7rjgIidEeiP-_qqZZR9Jg"/>
  <UMLRealTime:CapsulePart xmi:id="_pwfPMIidEeiP-_qqZZR9Jg" base_Property="_pwcy8IidEeiP-_qqZZR9Jg"/>
  <UMLRealTime:Capsule xmi:id="_qAQwkIidEeiP-_qqZZR9Jg" base_Class="_qAMfIIidEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_M-X5QIieEeiP-_qqZZR9Jg" base_Pseudostate="_M-WEEIieEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTState xmi:id="_M-ZucIieEeiP-_qqZZR9Jg" base_State="_M-YgUIieEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTRegion xmi:id="_M-aVgIieEeiP-_qqZZR9Jg" base_Region="_M-U18IieEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTStateMachine xmi:id="_M-cKwIieEeiP-_qqZZR9Jg" base_StateMachine="_M-OIQIieEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_xFyMUIieEeiP-_qqZZR9Jg" isPublish="false" isWired="false" base_Port="_xFvwEIieEeiP-_qqZZR9Jg"/>
  <RTCppProperties:CapsuleProperties xmi:id="_2YZ8gIieEeiP-_qqZZR9Jg" headerPreface="#include &lt;string>&#xA;#include &lt;iostream>&#xA;#include &lt;stdlib.h>&#xA;#include &lt;stdio.h>&#xA;#include &lt;cstring>&#xA;#include &lt;math.h> &#xA;" implementationPreface="#include &lt;sys/socket.h>&#xA;#include &lt;netinet/in.h>&#xA;#include &lt;arpa/inet.h>" base_Class="_qAMfIIidEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_y3RGIIigEeiP-_qqZZR9Jg" isPublish="false" isWired="false" base_Port="_y3Op4IigEeiP-_qqZZR9Jg"/>
  <UMLRealTime:CapsulePart xmi:id="_wO7D4IjtEeiP-_qqZZR9Jg" base_Property="_wO4noIjtEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTState xmi:id="_MXLIAIjuEeiP-_qqZZR9Jg" base_State="_MXIrwIjuEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTState xmi:id="_O4J3AIjuEeiP-_qqZZR9Jg" base_State="_O4Io4IjuEeiP-_qqZZR9Jg"/>
  <UMLRTStateMachines:RTState xmi:id="_RrdFEIjuEeiP-_qqZZR9Jg" base_State="_Rrb28IjuEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_Qi4PQIj1EeiP-_qqZZR9Jg" isPublish="false" isWired="false" base_Port="_Qi1zAIj1EeiP-_qqZZR9Jg"/>
  <RTCppProperties:CapsuleProperties xmi:id="_viXhkJRXEem-h8JsU1axzg" headerPreface="#include &lt;string>&#xA;#include &lt;iostream>&#xA;#include &lt;cstdlib>&#xA;" base_Class="_HR_-AIgqEeiP-_qqZZR9Jg"/>
  <UMLRealTime:RTPort xmi:id="_BdaUYJRkEem-h8JsU1axzg" isPublish="false" isWired="false" base_Port="_BdWqAJRkEem-h8JsU1axzg"/>
  <UMLRealTime:RTPort xmi:id="_EJLXEJRkEem-h8JsU1axzg" isPublish="false" isWired="false" base_Port="_EJI60JRkEem-h8JsU1axzg"/>
  <UMLRealTime:Capsule xmi:id="_VvGEwJXsEemnlJvKCgeTXw" base_Class="_VuOiEJXsEemnlJvKCgeTXw"/>
  <UMLRealTime:ProtocolContainer xmi:id="_ibcbkJXsEemnlJvKCgeTXw" base_Package="_ibYKIJXsEemnlJvKCgeTXw"/>
  <UMLRealTime:RTMessageSet xmi:id="_ibhUEJXsEemnlJvKCgeTXw" base_Interface="_ibe30JXsEemnlJvKCgeTXw"/>
  <UMLRealTime:RTMessageSet xmi:id="_ibrFEJXsEemnlJvKCgeTXw" base_Interface="_ibnasJXsEemnlJvKCgeTXw" rtMsgKind="out"/>
  <UMLRealTime:RTMessageSet xmi:id="_ibxLsJXsEemnlJvKCgeTXw" base_Interface="_ibuIYJXsEemnlJvKCgeTXw" rtMsgKind="inOut"/>
  <UMLRealTime:Protocol xmi:id="_ib2EMJXsEemnlJvKCgeTXw" base_Collaboration="_ibMj8JXsEemnlJvKCgeTXw"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_RG-0sJXtEemnlJvKCgeTXw" base_Pseudostate="_RG8YcJXtEemnlJvKCgeTXw"/>
  <UMLRTStateMachines:RTState xmi:id="_RHDtMJXtEemnlJvKCgeTXw" base_State="_RHBQ8JXtEemnlJvKCgeTXw"/>
  <UMLRTStateMachines:RTRegion xmi:id="_RHHXkJXtEemnlJvKCgeTXw" base_Region="_RG244JXtEemnlJvKCgeTXw"/>
  <UMLRTStateMachines:RTStateMachine xmi:id="_RHWBEJXtEemnlJvKCgeTXw" base_StateMachine="_RGj98JXtEemnlJvKCgeTXw"/>
  <UMLRTStateMachines:RTState xmi:id="_tWf-cJXtEemnlJvKCgeTXw" base_State="_tWWNcJXtEemnlJvKCgeTXw"/>
  <UMLRealTime:RTPort xmi:id="_142aAJXtEemnlJvKCgeTXw" isPublish="false" isWired="false" base_Port="_14z9wJXtEemnlJvKCgeTXw"/>
  <UMLRealTime:RTPort xmi:id="_2nJDYJXtEemnlJvKCgeTXw" isPublish="false" isWired="false" base_Port="_2nGAEJXtEemnlJvKCgeTXw"/>
  <UMLRealTime:RTPort xmi:id="_37x7EJXtEemnlJvKCgeTXw" isPublish="false" isWired="false" base_Port="_37u3wJXtEemnlJvKCgeTXw"/>
  <UMLRTStateMachines:RTState xmi:id="_SVAcIJXvEemnlJvKCgeTXw" base_State="_SU9Y0JXvEemnlJvKCgeTXw"/>
  <UMLRealTime:RTPort xmi:id="_iSTmUJXvEemnlJvKCgeTXw" isPublish="false" isWired="true" base_Port="_iSOGwJXvEemnlJvKCgeTXw"/>
  <RTCppProperties:CapsuleProperties xmi:id="_uEqrAJX4EemnlJvKCgeTXw" headerPreface="#include &lt;string>&#xA;#include &lt;iostream>&#xA;#include &lt;stdlib.h>&#xA;#include &lt;stdio.h>&#xA;#include &lt;cstring>" base_Class="_VuOiEJXsEemnlJvKCgeTXw"/>
  <UMLRealTime:CapsulePart xmi:id="_nZbukJanEemCgN1WwdiMbQ" base_Property="_nYqSgJanEemCgN1WwdiMbQ"/>
  <UMLRealTime:RTPort xmi:id="_vfB8sJanEemCgN1WwdiMbQ" isPublish="false" isWired="true" base_Port="_ve72EJanEemCgN1WwdiMbQ"/>
  <UMLRealTime:RTConnector xmi:id="_1W7kMJanEemCgN1WwdiMbQ" base_Connector="_1W2rsJanEemCgN1WwdiMbQ"/>
  <UMLRealTime:RTPort xmi:id="_hWBBUJasEemCgN1WwdiMbQ" isPublish="false" isWired="true" base_Port="_hVmKkJasEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTState xmi:id="_TgdKQJatEemCgN1WwdiMbQ" base_State="_TgbVEJatEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTState xmi:id="_ZQnLAJatEemCgN1WwdiMbQ" base_State="_ZQlV0JatEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTRegion xmi:id="_KPpbUJavEemCgN1WwdiMbQ" base_Region="_KPki0JavEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_KPx-MJavEemCgN1WwdiMbQ" base_Pseudostate="_KPtFsJavEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_KP56AJavEemCgN1WwdiMbQ" base_Pseudostate="_KP3dwJavEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTState xmi:id="_qQGgEJavEemCgN1WwdiMbQ" base_State="_qP_yYJavEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTState xmi:id="_tBJrYJavEemCgN1WwdiMbQ" base_State="_tBEy4JavEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTState xmi:id="_HXAk0JawEemCgN1WwdiMbQ" base_State="_HW-IkJawEemCgN1WwdiMbQ"/>
  <UMLRealTime:RTPort xmi:id="_vAzZgJawEemCgN1WwdiMbQ" isPublish="false" isWired="true" base_Port="_vAt58JawEemCgN1WwdiMbQ"/>
  <UMLRealTime:RTConnector xmi:id="_1c3eAJawEemCgN1WwdiMbQ" base_Connector="_1cxXYJawEemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTState xmi:id="_OTvCMJa3EemCgN1WwdiMbQ" base_State="_OTqwwJa3EemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTState xmi:id="_XaijwJa5EemCgN1WwdiMbQ" base_State="_XagukJa5EemCgN1WwdiMbQ"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_tLdBMJdPEemu8v-9gGlQEg" base_Pseudostate="_tK8D0JdPEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_wy6QEJdPEemu8v-9gGlQEg" base_State="_wy3z0JdPEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_0cnhsJdPEemu8v-9gGlQEg" base_State="_0cmTkJdPEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_Bd7b4JdQEemu8v-9gGlQEg" base_Pseudostate="_Bd3KcJdQEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_As4kAJdREemu8v-9gGlQEg" base_State="_As2u0JdREemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_RBVp8JdREemu8v-9gGlQEg" base_Pseudostate="_RBQxcJdREemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTRegion xmi:id="_sSgGUJdXEemu8v-9gGlQEg" base_Region="_sScb8JdXEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_sSll4JdXEemu8v-9gGlQEg" base_Pseudostate="_sSjwsJdXEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_sSpQQJdXEemu8v-9gGlQEg" base_Pseudostate="_sSnbEJdXEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_tDFOsJdXEemu8v-9gGlQEg" base_State="_tDCLYJdXEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_wKgSoJdXEemu8v-9gGlQEg" base_State="_wKfEgJdXEemu8v-9gGlQEg"/>
  <UMLRealTime:RTConnector xmi:id="_F5jKQZdeEemu8v-9gGlQEg" base_Connector="_F5eRwJdeEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_BcUCkJdhEemu8v-9gGlQEg" base_State="_BcSNYJdhEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTRegion xmi:id="_V3O_4JdnEemu8v-9gGlQEg" base_Region="_V3NxwJdnEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_V3RcIJdnEemu8v-9gGlQEg" base_Pseudostate="_V3QOAJdnEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_V3UfcJdnEemu8v-9gGlQEg" base_Pseudostate="_V3TRUJdnEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_XLxJ4JdnEemu8v-9gGlQEg" base_State="_XLutoJdnEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_gFJVoJd4Eemu8v-9gGlQEg" base_Pseudostate="_gFG5YJd4Eemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_n-eCUJd4Eemu8v-9gGlQEg" base_State="_n-cNIJd4Eemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_sz5gMJd4Eemu8v-9gGlQEg" base_Pseudostate="_sz3rAJd4Eemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_5tFjsJd5Eemu8v-9gGlQEg" base_Pseudostate="_5tDHcJd5Eemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_VJgUMJeIEemu8v-9gGlQEg" base_State="_VJfGEJeIEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTRegion xmi:id="_YgmWYJeJEemu8v-9gGlQEg" base_Region="_YglIQJeJEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_YgpZsJeJEemu8v-9gGlQEg" base_Pseudostate="_YgnkgJeJEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_YgsdAJeJEemu8v-9gGlQEg" base_Pseudostate="_Ygqn0JeJEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_ZilX0JeJEemu8v-9gGlQEg" base_State="_ZiiUgJeJEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTPseudostate xmi:id="_XlomIJeNEemu8v-9gGlQEg" base_Pseudostate="_Xlmw8JeNEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_vQyXYJeOEemu8v-9gGlQEg" base_State="_vQxJQJeOEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_813tAJeOEemu8v-9gGlQEg" base_State="_81130JeOEemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_3_IgMJeREemu8v-9gGlQEg" base_State="_3_GrAJeREemu8v-9gGlQEg"/>
  <UMLRTStateMachines:RTState xmi:id="_EGJN8JeVEemu8v-9gGlQEg" base_State="_EGH_0JeVEemu8v-9gGlQEg"/>
</xmi:XMI>
