diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000000000000000000000000000000000000..f2784d8fec4511202db38f892dc98e1634a583f3 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,7 @@ +<component name="ProjectCodeStyleConfiguration"> + <code_scheme name="Project" version="173"> + <option name="LINE_SEPARATOR" value=" " /> + <option name="RIGHT_MARGIN" value="150" /> + <option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="true" /> + </code_scheme> +</component> \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml index a55e7a179bde3e4e772c29c0c85e53354aa54618..6e6eec114839ebf81e5be9d3c4224340855c483f 100644 --- a/.idea/codeStyles/codeStyleConfig.xml +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -1,5 +1,6 @@ <component name="ProjectCodeStyleConfiguration"> <state> + <option name="USE_PER_PROJECT_SETTINGS" value="true" /> <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" /> </state> </component> \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index c6526892eb8d90c330871093fd22fa80248489ba..ef7fcbec9ba24d5d435f2d745ceaa5b215a72edd 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -4,6 +4,7 @@ <inspection_tool class="DeprecatedIsStillUsed" enabled="true" level="ERROR" enabled_by_default="true" /> <inspection_tool class="Deprecation" enabled="true" level="ERROR" enabled_by_default="true" /> <inspection_tool class="ListIndexOfReplaceableByContains" enabled="true" level="WARNING" enabled_by_default="true" /> + <inspection_tool class="LongLine" enabled="true" level="WEAK WARNING" enabled_by_default="true" /> <inspection_tool class="OverlyStrongTypeCast" enabled="true" level="WARNING" enabled_by_default="true"> <option name="ignoreInMatchingInstanceof" value="false" /> </inspection_tool> @@ -16,10 +17,11 @@ <option name="doNotWeakenToJavaLangObject" value="true" /> <option name="onlyWeakentoInterface" value="true" /> </inspection_tool> - <inspection_tool class="WeakerAccess" enabled="true" level="WEAK WARNING" enabled_by_default="true"> - <option name="SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS" value="true" /> - <option name="SUGGEST_PACKAGE_LOCAL_FOR_TOP_CLASSES" value="true" /> + <inspection_tool class="WeakerAccess" enabled="true" level="WARNING" enabled_by_default="true"> + <option name="SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS" value="false" /> + <option name="SUGGEST_PACKAGE_LOCAL_FOR_TOP_CLASSES" value="false" /> <option name="SUGGEST_PRIVATE_FOR_INNERS" value="false" /> + <disabledExtension id="moduleInfo" /> </inspection_tool> </profile> </component> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index b755d8ca46c060cb7a2b6b29b7ec83e02b8b71e2..51e5191ed4bd4e6ffe2a1823753c5d6f92894ab9 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -38,7 +38,7 @@ <property name="caretWidth" class="java.lang.Integer" /> </properties> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="false" project-jdk-name="1.7" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build" /> </component> </project> \ No newline at end of file diff --git a/.idea/runConfigurations/All_in_ttool.xml b/.idea/runConfigurations/All_in_ttool.xml new file mode 100644 index 0000000000000000000000000000000000000000..c61daedb2d41f1af434be26971e291115a0c3de7 --- /dev/null +++ b/.idea/runConfigurations/All_in_ttool.xml @@ -0,0 +1,25 @@ +<component name="ProjectRunConfigurationManager"> + <configuration default="false" name="All in ttool" type="JUnit" factoryName="JUnit" nameIsGenerated="true"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="ttool" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="PACKAGE_NAME" value="" /> + <option name="MAIN_CLASS_NAME" value="" /> + <option name="METHOD_NAME" value="" /> + <option name="TEST_OBJECT" value="package" /> + <option name="VM_PARAMETERS" value="-ea" /> + <option name="PARAMETERS" value="" /> + <option name="WORKING_DIRECTORY" value="file://ttool/build" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="singleModule" /> + </option> + <envs /> + <patterns /> + <method> + <option name="Make" enabled="false" /> + </method> + </configuration> +</component> \ No newline at end of file diff --git a/Makefile b/Makefile index f5f1aff126376350897b91ccdeaab572feeabd86..0855a251764035a0550c7a8cca720efecfe0b6c5 100755 --- a/Makefile +++ b/Makefile @@ -417,6 +417,7 @@ $(BASERELEASE:.tgz=.tar): $(JTTOOL_BINARY) $(TTOOL_BINARY) $(LAUNCHER_BINARY) $( @mkdir -p $(TTOOL_TARGET)/executablecode/src @mkdir -p $(TTOOL_TARGET)/executablecode/generated_src @mkdir -p $(TTOOL_TARGET)/executablecode/example + @cp $(TTOOL_EXECUTABLECODE)/LICENSE* $(TTOOL_TARGET)/executablecode/ @cp $(TTOOL_EXECUTABLECODE)/Makefile $(TTOOL_TARGET)/executablecode/ @cp $(TTOOL_EXECUTABLECODE)/Makefile.defs $(TTOOL_TARGET)/executablecode/ @cp $(TTOOL_EXECUTABLECODE)/Makefile.forsoclib $(TTOOL_TARGET)/executablecode/ diff --git a/build.txt b/build.txt index 96949fa420491e75fb559b5bf2930f9ddca32dd9..292e2a7bd96980a5b16c14b23ad4aaf0d9213857 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -12562 \ No newline at end of file +12564 \ No newline at end of file diff --git a/doc/config_linux.xml b/doc/config_linux.xml index 018a7d853ea10e5356c661a154fb9f338ed3b338..41256f6989412a8ddfb9ee911cee35c0b1cda59a 100755 --- a/doc/config_linux.xml +++ b/doc/config_linux.xml @@ -4,6 +4,7 @@ <DOTTYPath data="/bin/dotty" /> <DOTTYHost data="localhost" /> <FILEPath data="../modeling/" /> +<DownloadedFILEPath data="../modeling/" /> <LIBPath data="../lib" /> <IMGPath data="../figures" /> <LOTOSPath data="../lotos/" /> diff --git a/doc/config_macosx.xml b/doc/config_macosx.xml index 25aa7427338625c0ae02674a74e10a6fe64920d3..051791d18aa106f6962f4c189af6a7501c03e1d9 100755 --- a/doc/config_macosx.xml +++ b/doc/config_macosx.xml @@ -4,6 +4,7 @@ <DOTTYPath data="/bin/dotty" /> <DOTTYHost data="localhost" /> <FILEPath data="../modeling/" /> +<DownloadedFILEPath data="../modeling/" /> <LIBPath data="../lib" /> <IMGPath data="../figures" /> <LOTOSPath data="../lotos/" /> diff --git a/doc/config_windows.xml b/doc/config_windows.xml index 2e9af8b6b7440c77380500cfd961753d90b45e4a..5b62ce8058011c2121715ed3a09d0c253c07aa68 100755 --- a/doc/config_windows.xml +++ b/doc/config_windows.xml @@ -4,6 +4,7 @@ <DOTTYPath data="/bin/dotty" /> <DOTTYHost data="localhost" /> <FILEPath data="../modeling/" /> +<DownloadedFILEPath data="../modeling/" /> <LIBPath data="../lib" /> <IMGPath data="../figures" /> <LOTOSPath data="../lotos/" /> diff --git a/doc/dev_infrastructure/ttool_development_infrastructure.tex b/doc/dev_infrastructure/ttool_development_infrastructure.tex index 25c8d40b222767173950fea2b2ac0450c416fb3c..218656682e4404d8db2d60336b69997d1c33208c 100644 --- a/doc/dev_infrastructure/ttool_development_infrastructure.tex +++ b/doc/dev_infrastructure/ttool_development_infrastructure.tex @@ -471,7 +471,121 @@ can be changed by editing the debug launch configuration. \section{Development with IntelliJ} -TODO +IntelliJ IDEA is another Integrated Development Environment popular especially +among Java developers. It can be used to work on TTool and provides +functionalities globally similar to Eclipse. + +\subsection{Installing and configuring IntelliJ} + +Download IntelliJ IDEA here: \url{https://www.jetbrains.com/idea/}. + +Unzip IntelliJ folder where you want to keep the executable. Launch it by using +the \texttt{idea.sh} script under the \texttt{bin} folder. Click on \emph{Open} +and navigate to the root of the TTool git repository. + +\subsection{The IDE window layout} + +A quick presentation of the user interface is given here: +\url{https://www.jetbrains.com/help/idea/guided-tour-around-the-user-interface.html}. +IntelliJ consists of an editor window and multiple tool windows. Some of the +important tool windows are: +\begin{itemize} + \item \textbf{Project}. Show the structure of the project. In the case of + TTool it displays the different sub-projects and the source folders + (code, test, resource, etc.) for each sub-project. It can be used in + addition to the navigation bar to navigate between files. + \item \textbf{TODO}. List TODOs in the project files. + \item \textbf{Structure}. Show the structure of a class (methods, fields, + etc.). + \item \textbf{Version control}. Show information related to the versioning + system used (git in our case). This enables to see the commits that have + modified the current file, the state of the various branches, the files + that have been modified since the last commit or to directly make a + commit. + \item \textbf{Terminal}. This opens a pseudo-terminal window that can be + used directly from IntelliJ. +\end{itemize} + +Note that these tool windows are movable from the different panes and that the +toolbar that enables to select which tool window to display can be shown/hidden +by clicking on the icon on the lower-left side of the IntelliJ window. + +\subsection{Debugging TTool} + +IntelliJ integrates a debugger that is helpful to find some bugs. You can either +launch TTool in debug mode by clicking on the bug icon in the right part of the +navigation bar when the \emph{TTool} configuration is selected, or debug a +specific test by selecting \emph{debug} in the drop-down menu that appears when +clicking on the arrow for this test. + +You can add breakpoints by clicking in the editor's left margin. You can the +right click on the breakpoint to modify it (log something, do not interrupt, add +a condition to the breakpoint, etc.). During debugging, when a breakpoint is +reached or the program was paused, you can see the current value of the +variables, see the stack frames, see the existing threads, add a watch point to +see how an expression evaluates, resume the program, execute step-by-step, etc. + +\subsection{Configuring new sub-projects} +\label{sec:intellij:subprojects} + +As described in section \ref{sec:code_orga}, TTool is composed of multiple +sub-projects. In IntelliJ, this is achieved by using \emph{modules}. You can see +the existing modules in the \emph{File -> Project structure...} menu. On the +left pane, click on \emph{Modules}. In particular, the \texttt{shared} module +consists of all the code used by other modules and the \texttt{ttool} module is +the main TTool application. + +For each of these modules, you can add \emph{content roots} (path that will +contain sub-folders for sources, tests, resources and test resources). Then you +can select a sub-folder for a content root and mark it either as a source, test, +resource or test resource folder. + +On the second tab, it is possible to modify the compile path. Note that if you +had a module then it must be compiled with gradle without requiring IntelliJ. +This is why you will need to update the compile path in order to generate the +output into the sub-project's build directory. + +Finally, you can add dependencies in the third tab. This is useful in particular +if a sub-project requires an external library. + +In the project structure window, on the left pane, you can select +\emph{Artifacts} to see the final results that can be built from the application +(the \texttt{ttool.jar} file for instance). As of today (February 2018), these +artifacts are: +\begin{itemize} + \item some files needed by TTool during its execution + \item the external libraries that TTool depends on + \item the \texttt{ttool.jar} archive +\end{itemize} + +\subsection{Configuration of code inspection and indentation rules} + +IntelliJ enables to improve coding practice by providing warnings (e.g., unused +variable) that are +visible in the editor and by enabling to automatically correct them. These +warnings have different levels (error, warning, weak warning, etc.) and they are +fully configurable. In order to configure them, you can click on the icon at the +extreme right of the status bar and click on \emph{configure inspections}. You +can choose which inspection should be enabled and which warning level should be +raised when code does not follow these inspections. In order to provide a +common coding standard among TTool developers, the configuration of these +inspections is stored in a profile that is versioned by Git. You should thus not +modify this profile without asking other developers. + +Similarly to these warnings, IntelliJ enables to harmonize code style by +defining a profile that is shared between all developers. To see the code style +options, go to \emph{File -> Settings} and navigate to \emph{Editor -> Code +Style}. As for warnings, do not modify this shared profile except if you know +what you are doing. + +Finally, IntelliJ enables to correct code style issues and some warnings +automatically. To do that, right click on the file in the project tool window +and select \emph{Reformat code}. + +\subsection{Tips and tricks} + +Note that there is a vim plugin available in IntelliJ that supports some of vim +commands. \section{Coding Information} Here are gathered all tricks on how TTool source codes are organized, and what function is coded where, and also how to extend TTool, e.g. adding a new diagram. @@ -605,6 +719,7 @@ make documentation and make sure no warning is printed. \subsection{Code organization} +\label{sec:code_orga} The TTool repository actually hosts the source code of different standalone projects. Here is a description of these sub-projects: \begin{itemize} @@ -723,6 +838,13 @@ When using the Eclipse IDE, test classes can be automatically generated for a given class to be tested and will include annotated methods for the selected methods of the class to be tested. +With IntelliJ, when you are editing a Java class, you can jump to the corresponding test class +by right-clicking on the editor window (on a specific method or anywhere in the +class), and select \emph{Go To -> Test}. +IntelliJ will look for a corresponding test class and will propose to create a +new one. If you decide to create a new test class, select \emph{JUnit4} as the +testing library and pick the methods for which you want to add tests. + See folder $test/fr.tpt.ttool.tests.util$ of the TTool source code repository for an example test class $TestRshClient$ providing test cases for the TTool utility class $RshClient$ used for client-server remote communications. @@ -802,6 +924,29 @@ the tests (passed of failed) as shown in figure~\ref{fig:image14}. \label{fig:image14} \end{figure} +\textbf{\emph{Within the IntelliJ IDE}} + +Once the +test is written, you will have a green arrow in the left margin of the editor +next to each test method. You can either click on the arrow corresponding to a +specific method to run the corresponding test, or click on the arrow next to the +class name to run all the tests in this class. + +In some cases, the tests need to use resources. You need to add these resources +to the \emph{test resources} root folder (see section +\ref{sec:intellij:subprojects} to see how this root folder is configured) and +to ensure that the test is running from the correct directory. To do this, run +the test once. You will see in the right section of the navigation bar a +shortcut to run the previous test. Expand the configuration selection list and +click on \emph{Edit Configurations...}. You can see all the available +configurations and modify options for each of them. In particular, you can +change the \emph{Working directory} (which should probably be +\texttt{ttool/build}) or require actions to do before running this +configuration (at the bottom of the window). You can share your configurations +so that other can use them but be careful not to share something with absolute +paths. + + \subsection{C++} TODO diff --git a/modeling/AVATAR/CoffeeMachine_Avatar.xml b/modeling/AVATAR/CoffeeMachine_Avatar.xml index d5b4b4b4e6df83efeb5857c34bd17166c6a7b0a0..dab29392cade3faa621767d95f3b46e425dbd41e 100644 --- a/modeling/AVATAR/CoffeeMachine_Avatar.xml +++ b/modeling/AVATAR/CoffeeMachine_Avatar.xml @@ -534,7 +534,7 @@ </AvatarRDPanel> -<AvatarPDPanel name="AVATAR PD" minX="10" maxX="1402" minY="10" maxY="902" zoom="1.0000000000000004" > +<AvatarPDPanel name="AVATAR PD" minX="10" maxX="1400" minY="10" maxY="900" zoom="1.0000000000000004" > <CONNECTOR type="5312" id="330" > <cdparam x="582" y="248" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> @@ -578,7 +578,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="337" /> -<P1 x="313" y="261" id="381" /> +<P1 x="313" y="261" id="368" /> <P2 x="361" y="261" id="356" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -596,7 +596,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="341" /> -<P1 x="309" y="211" id="368" /> +<P1 x="309" y="211" id="381" /> <P2 x="361" y="211" id="355" /> <AutomaticDrawing data="true" /> </CONNECTOR> @@ -604,7 +604,7 @@ <cdparam x="446" y="334" /> <sizeparam width="112" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" /> <infoparam name="TGComponent" value="WalletCoinProperty" /> <TGConnectingPoint num="0" id="343" /> <TGConnectingPoint num="1" id="344" /> @@ -620,7 +620,7 @@ <cdparam x="340" y="331" /> <sizeparam width="100" height="55" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" /> <infoparam name="TGComponent" value="oneCoinProperty" /> <TGConnectingPoint num="0" id="348" /> <TGConnectingPoint num="1" id="349" /> @@ -636,7 +636,7 @@ <cdparam x="361" y="187" /> <sizeparam width="59" height="99" minWidth="50" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" /> <infoparam name="TGComponent" value=">50" /> <TGConnectingPoint num="0" id="353" /> <TGConnectingPoint num="1" id="354" /> @@ -656,7 +656,7 @@ <cdparam x="150" y="142" /> <sizeparam width="168" height="154" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" /> <infoparam name="Block0" value="CoffeeMachine" /> <TGConnectingPoint num="0" id="392" /> <TGConnectingPoint num="1" id="393" /> @@ -685,11 +685,11 @@ </COMPONENT> <SUBCOMPONENT type="5304" id="378" > <father id="416" num="0" /> -<cdparam x="170" y="191" /> -<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="165" y="241" /> +<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> +<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> <TGConnectingPoint num="0" id="366" /> <TGConnectingPoint num="1" id="367" /> <TGConnectingPoint num="2" id="368" /> @@ -705,11 +705,11 @@ </SUBCOMPONENT> <SUBCOMPONENT type="5304" id="391" > <father id="416" num="1" /> -<cdparam x="165" y="241" /> -<sizeparam width="148" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="170" y="191" /> +<sizeparam width="139" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="20" minY="0" maxY="114" /> -<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" /> +<cdrectangleparam minX="0" maxX="29" minY="0" maxY="114" /> +<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" /> <TGConnectingPoint num="0" id="379" /> <TGConnectingPoint num="1" id="380" /> <TGConnectingPoint num="2" id="381" /> @@ -728,7 +728,7 @@ <cdparam x="459" y="61" /> <sizeparam width="150" height="116" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" /> <infoparam name="Block0" value="Wallet" /> <TGConnectingPoint num="0" id="430" /> <TGConnectingPoint num="1" id="431" /> @@ -783,7 +783,7 @@ <cdparam x="467" y="209" /> <sizeparam width="100" height="49" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1403" minY="10" maxY="903" /> +<cdrectangleparam minX="10" maxX="1401" minY="10" maxY="901" /> <infoparam name="TGComponent" value="nbOfCoins >= 0" /> <TGConnectingPoint num="0" id="455" /> <TGConnectingPoint num="1" id="456" /> @@ -839,7 +839,7 @@ <TGConnectingPoint num="0" id="475" /> <TGConnectingPoint num="1" id="476" /> <TGConnectingPoint num="2" id="477" /> -<P1 x="581" y="154" id="551" /> +<P1 x="581" y="154" id="564" /> <P2 x="546" y="305" id="621" /> <Point x="518" y="154" /> <Point x="518" y="305" /> @@ -867,7 +867,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="480" /> <TGConnectingPoint num="1" id="481" /> -<P1 x="631" y="164" id="546" /> +<P1 x="631" y="164" id="559" /> <P2 x="667" y="310" id="608" /> <Point x="631" y="310" /> <AutomaticDrawing data="true" /> @@ -895,7 +895,7 @@ <infoparam name="connector from TGComponent to TGComponent" value="" /> <TGConnectingPoint num="0" id="486" /> <TGConnectingPoint num="1" id="487" /> -<P1 x="721" y="158" id="557" /> +<P1 x="721" y="158" id="544" /> <P2 x="700" y="204" id="598" /> <Point x="700" y="158" /> <AutomaticDrawing data="true" /> @@ -1050,13 +1050,13 @@ <TGConnectingPoint num="22" id="591" /> <TGConnectingPoint num="23" id="592" /> </COMPONENT> -<SUBCOMPONENT type="5304" id="555" > +<SUBCOMPONENT type="5303" id="555" > <father id="593" num="0" /> -<cdparam x="581" y="125" /> -<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="721" y="133" /> +<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> -<infoparam name="TGComponent" value="Start" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> +<infoparam name="TGComponent" value="nbOfCoins" /> <TGConnectingPoint num="0" id="543" /> <TGConnectingPoint num="1" id="544" /> <TGConnectingPoint num="2" id="545" /> @@ -1069,14 +1069,17 @@ <TGConnectingPoint num="9" id="552" /> <TGConnectingPoint num="10" id="553" /> <TGConnectingPoint num="11" id="554" /> +<extraparam> +<Toggle value="" /> +</extraparam> </SUBCOMPONENT> -<SUBCOMPONENT type="5303" id="568" > +<SUBCOMPONENT type="5304" id="568" > <father id="593" num="1" /> -<cdparam x="721" y="133" /> -<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="581" y="125" /> +<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" /> -<infoparam name="TGComponent" value="nbOfCoins" /> +<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" /> +<infoparam name="TGComponent" value="Start" /> <TGConnectingPoint num="0" id="556" /> <TGConnectingPoint num="1" id="557" /> <TGConnectingPoint num="2" id="558" /> @@ -1089,9 +1092,6 @@ <TGConnectingPoint num="9" id="565" /> <TGConnectingPoint num="10" id="566" /> <TGConnectingPoint num="11" id="567" /> -<extraparam> -<Toggle value="" /> -</extraparam> </SUBCOMPONENT> <COMPONENT type="5306" id="605" > @@ -1208,12 +1208,12 @@ -<Modeling type="AVATAR Design" nameTab="MainDesign" > +<Modeling type="AVATAR Design" nameTab="AVATAR Design" > <AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > <MainCode value="void __user_init() {"/> <MainCode value="}"/> <Optimized value="true" /> -<Validated value="" /> +<Validated value="Wallet;CoffeeMachine;CoffeeButton;TeaButton;" /> <Ignored value="" /> <CONNECTOR type="5002" id="659" > @@ -1221,7 +1221,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="658" /> -<P1 x="559" y="330" id="720" /> +<P1 x="559" y="330" id="695" /> <P2 x="560" y="377" id="753" /> <AutomaticDrawing data="true" /> <extraparam> @@ -1235,7 +1235,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block0 to Block0" value="" /> <TGConnectingPoint num="0" id="660" /> -<P1 x="306" y="109" id="675" /> +<P1 x="306" y="110" id="675" /> <P2 x="445" y="108" id="749" /> <AutomaticDrawing data="true" /> <extraparam> @@ -1251,7 +1251,7 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Block1 to Block0" value="" /> <TGConnectingPoint num="0" id="662" /> -<P1 x="789" y="326" id="695" /> +<P1 x="789" y="326" id="720" /> <P2 x="790" y="377" id="754" /> <AutomaticDrawing data="true" /> <extraparam> @@ -1261,7 +1261,7 @@ </extraparam> </CONNECTOR> <COMPONENT type="5000" id="688" > -<cdparam x="106" y="55" /> +<cdparam x="106" y="56" /> <sizeparam width="200" height="218" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -1297,8 +1297,8 @@ <Attribute access="0" id="minUserDelay" value="50" type="8" typeOther="" /> <Attribute access="0" id="maxUserDelay" value="70" type="8" typeOther="" /> <Method value="contentOfWallet(int nbOfCoins)" /> -<Signal value="in getCoin(int nbOfCoins)" attached="false" /> -<Signal value="out putCoin(int nbOfCoins)" attached="false" /> +<Signal value="in getCoin(int nbOfCoins)" attached="true" /> +<Signal value="out putCoin(int nbOfCoins)" attached="true" /> </extraparam> </COMPONENT> @@ -1342,19 +1342,19 @@ <Attribute access="0" id="x" value="0" type="8" typeOther="" /> <Attribute access="0" id="nbOfCoins" value="0" type="8" typeOther="" /> <Method value="beverageReady()" /> -<Signal value="in pushCoffeeButton()" attached="false" /> -<Signal value="in pushTeaButton()" attached="false" /> -<Signal value="in getCoin(int nbOfCoins)" attached="false" /> -<Signal value="out ejectCoin(int nbOfCoins)" attached="false" /> +<Signal value="in pushCoffeeButton()" attached="true" /> +<Signal value="in pushTeaButton()" attached="true" /> +<Signal value="in getCoin(int nbOfCoins)" attached="true" /> +<Signal value="out ejectCoin(int nbOfCoins)" attached="true" /> </extraparam> </COMPONENT> <SUBCOMPONENT type="5000" id="713" > <father id="763" num="0" /> -<cdparam x="695" y="224" /> -<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="464" y="228" /> +<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> -<infoparam name="Block1" value="TeaButton" /> +<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> +<infoparam name="Block1" value="CoffeeButton" /> <TGConnectingPoint num="0" id="689" /> <TGConnectingPoint num="1" id="690" /> <TGConnectingPoint num="2" id="691" /> @@ -1382,16 +1382,16 @@ <extraparam> <CryptoBlock value="false" /> <Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" /> -<Signal value="out push()" attached="false" /> +<Signal value="out push()" attached="true" /> </extraparam> </SUBCOMPONENT> <SUBCOMPONENT type="5000" id="738" > <father id="763" num="1" /> -<cdparam x="464" y="228" /> -<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="695" y="224" /> +<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> -<infoparam name="Block1" value="CoffeeButton" /> +<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> +<infoparam name="Block1" value="TeaButton" /> <TGConnectingPoint num="0" id="714" /> <TGConnectingPoint num="1" id="715" /> <TGConnectingPoint num="2" id="716" /> @@ -1418,8 +1418,8 @@ <TGConnectingPoint num="23" id="737" /> <extraparam> <CryptoBlock value="false" /> -<Attribute access="0" id="mechanicalDelay" value="80" type="8" typeOther="" /> -<Signal value="out push()" attached="false" /> +<Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" /> +<Signal value="out push()" attached="true" /> </extraparam> </SUBCOMPONENT> @@ -1438,7 +1438,7 @@ </CONNECTOR><SUBCOMPONENT type="-1" id="768" > <father id="770" num="0" /> <cdparam x="493" y="251" /> -<sizeparam width="173" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="161" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1452,6 +1452,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> <actions value="nbOfCoins = nbOfCoins + x" /> <actions value="contentOfWallet(nbOfCoins)" /> </extraparam> @@ -1482,6 +1483,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -1495,8 +1497,8 @@ <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="782" > <father id="784" num="0" /> -<cdparam x="163" y="252" /> -<sizeparam width="221" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="175" y="246" /> +<sizeparam width="205" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1510,6 +1512,7 @@ <afterMax value="maxUserDelay" /> <computeMin value="" /> <computeMax value="" /> +<probability value="0.99" /> <actions value="nbOfCoins = nbOfCoins - x" /> <actions value="contentOfWallet(nbOfCoins)" /> </extraparam> @@ -1526,7 +1529,7 @@ </CONNECTOR><SUBCOMPONENT type="-1" id="789" > <father id="791" num="0" /> <cdparam x="220" y="174" /> -<sizeparam width="99" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="93" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1540,6 +1543,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -1554,7 +1558,7 @@ </CONNECTOR><SUBCOMPONENT type="-1" id="796" > <father id="798" num="0" /> <cdparam x="376" y="105" /> -<sizeparam width="173" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="156" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1568,13 +1572,14 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> <actions value="contentOfWallet(nbOfCoins)" /> </extraparam> </SUBCOMPONENT> <COMPONENT type="5103" id="809" > -<cdparam x="214" y="206" /> -<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="217" y="206" /> +<sizeparam width="69" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="Send signal" value="putCoin(x)" /> @@ -1591,8 +1596,8 @@ </COMPONENT> <COMPONENT type="5104" id="820" > -<cdparam x="444" y="194" /> -<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="447" y="194" /> +<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="Receive signal" value="getCoin(x)" /> @@ -1796,6 +1801,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -1804,13 +1810,13 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="958" /> -<P1 x="437" y="525" id="1292" /> +<P1 x="437" y="525" id="1357" /> <P2 x="323" y="748" id="1218" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="957" > <father id="959" num="0" /> <cdparam x="420" y="552" /> -<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="85" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1824,6 +1830,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> <actions value="nbOfCoins = 0" /> </extraparam> </SUBCOMPONENT> @@ -1833,13 +1840,13 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="965" /> -<P1 x="321" y="455" id="1319" /> -<P2 x="437" y="495" id="1291" /> +<P1 x="321" y="455" id="1306" /> +<P2 x="437" y="495" id="1356" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="964" > <father id="966" num="0" /> <cdparam x="395" y="448" /> -<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="94" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1853,6 +1860,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -1861,13 +1869,13 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="972" /> -<P1 x="293" y="552" id="1357" /> +<P1 x="293" y="552" id="1292" /> <P2 x="289" y="748" id="1210" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="971" > <father id="973" num="0" /> <cdparam x="284" y="594" /> -<sizeparam width="248" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="228" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1881,6 +1889,7 @@ <afterMax value="" /> <computeMin value="teaMinDelay" /> <computeMax value="teaMaxDelay" /> +<probability value="" /> <actions value="nbOfCoins = 0" /> <actions value="beverageReady()" /> </extraparam> @@ -1891,8 +1900,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="979" /> -<P1 x="288" y="475" id="1330" /> -<P2 x="293" y="522" id="1356" /> +<P1 x="288" y="475" id="1317" /> +<P2 x="293" y="522" id="1291" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="978" > <father id="980" num="0" /> @@ -1911,6 +1920,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -1919,13 +1929,13 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from Send signal to stop state" value="null" /> <TGConnectingPoint num="0" id="986" /> -<P1 x="121" y="552" id="1303" /> +<P1 x="121" y="552" id="1346" /> <P2 x="255" y="748" id="1217" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="985" > <father id="987" num="0" /> <cdparam x="32" y="587" /> -<sizeparam width="284" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="262" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -1939,6 +1949,7 @@ <afterMax value="" /> <computeMin value="coffeeMinDelay" /> <computeMax value="coffeeMaxDelay" /> +<probability value="" /> <actions value="nbOfCoins = 0" /> <actions value="beverageReady()" /> </extraparam> @@ -1949,8 +1960,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="993" /> -<P1 x="222" y="475" id="1329" /> -<P2 x="121" y="522" id="1302" /> +<P1 x="222" y="475" id="1316" /> +<P2 x="121" y="522" id="1345" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="992" > <father id="994" num="0" /> @@ -1969,6 +1980,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -1977,8 +1989,8 @@ <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="1000" /> -<P1 x="256" y="419" id="1313" /> -<P2 x="255" y="435" id="1316" /> +<P1 x="256" y="419" id="1343" /> +<P2 x="255" y="435" id="1303" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="999" > <father id="1001" num="0" /> @@ -1997,6 +2009,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -2011,7 +2024,7 @@ </CONNECTOR><SUBCOMPONENT type="-1" id="1006" > <father id="1008" num="0" /> <cdparam x="707" y="368" /> -<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="85" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -2025,6 +2038,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> <actions value="nbOfCoins = 0" /> </extraparam> </SUBCOMPONENT> @@ -2040,7 +2054,7 @@ </CONNECTOR><SUBCOMPONENT type="-1" id="1013" > <father id="1015" num="0" /> <cdparam x="411" y="206" /> -<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="94" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -2054,6 +2068,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="0.1" /> </extraparam> </SUBCOMPONENT> @@ -2082,6 +2097,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -2110,6 +2126,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -2124,7 +2141,7 @@ </CONNECTOR><SUBCOMPONENT type="-1" id="1034" > <father id="1036" num="0" /> <cdparam x="328" y="178" /> -<sizeparam width="168" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<sizeparam width="161" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -2138,6 +2155,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> <actions value="nbOfCoins = nbOfCoins + x" /> </extraparam> </SUBCOMPONENT> @@ -2167,6 +2185,7 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> @@ -2195,12 +2214,13 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> <COMPONENT type="5104" id="1061" > -<cdparam x="265" y="141" /> -<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="268" y="141" /> +<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> <infoparam name="Receive signal" value="getCoin(x)" /> @@ -2217,8 +2237,8 @@ </COMPONENT> <COMPONENT type="5103" id="1072" > -<cdparam x="629" y="321" /> -<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="634" y="321" /> +<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> <infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> @@ -2235,8 +2255,8 @@ </COMPONENT> <COMPONENT type="5104" id="1083" > -<cdparam x="236" y="280" /> -<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="239" y="280" /> +<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> <infoparam name="Receive signal" value="getCoin(x)" /> @@ -2561,13 +2581,13 @@ <extraparam> </extraparam> </COMPONENT> -<SUBCOMPONENT type="5103" id="1301" > +<SUBCOMPONENT type="5104" id="1301" > <father id="1407" num="0" /> -<cdparam x="367" y="500" /> -<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="237" y="527" /> +<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> -<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> +<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushTeaButton()" /> <TGConnectingPoint num="0" id="1291" /> <TGConnectingPoint num="1" id="1292" /> <TGConnectingPoint num="2" id="1293" /> @@ -2580,13 +2600,13 @@ <TGConnectingPoint num="9" id="1300" /> <accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5104" id="1312" > +<SUBCOMPONENT type="5106" id="1342" > <father id="1407" num="1" /> -<cdparam x="51" y="527" /> -<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="189" y="435" /> +<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushCoffeeButton()" /> +<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> +<infoparam name="state0" value="WaitingForSelection" /> <TGConnectingPoint num="0" id="1302" /> <TGConnectingPoint num="1" id="1303" /> <TGConnectingPoint num="2" id="1304" /> @@ -2597,74 +2617,74 @@ <TGConnectingPoint num="7" id="1309" /> <TGConnectingPoint num="8" id="1310" /> <TGConnectingPoint num="9" id="1311" /> -<accessibility /> -</SUBCOMPONENT> -<SUBCOMPONENT type="5100" id="1314" > +<TGConnectingPoint num="10" id="1312" /> +<TGConnectingPoint num="11" id="1313" /> +<TGConnectingPoint num="12" id="1314" /> +<TGConnectingPoint num="13" id="1315" /> +<TGConnectingPoint num="14" id="1316" /> +<TGConnectingPoint num="15" id="1317" /> +<TGConnectingPoint num="16" id="1318" /> +<TGConnectingPoint num="17" id="1319" /> +<TGConnectingPoint num="18" id="1320" /> +<TGConnectingPoint num="19" id="1321" /> +<TGConnectingPoint num="20" id="1322" /> +<TGConnectingPoint num="21" id="1323" /> +<TGConnectingPoint num="22" id="1324" /> +<TGConnectingPoint num="23" id="1325" /> +<TGConnectingPoint num="24" id="1326" /> +<TGConnectingPoint num="25" id="1327" /> +<TGConnectingPoint num="26" id="1328" /> +<TGConnectingPoint num="27" id="1329" /> +<TGConnectingPoint num="28" id="1330" /> +<TGConnectingPoint num="29" id="1331" /> +<TGConnectingPoint num="30" id="1332" /> +<TGConnectingPoint num="31" id="1333" /> +<TGConnectingPoint num="32" id="1334" /> +<TGConnectingPoint num="33" id="1335" /> +<TGConnectingPoint num="34" id="1336" /> +<TGConnectingPoint num="35" id="1337" /> +<TGConnectingPoint num="36" id="1338" /> +<TGConnectingPoint num="37" id="1339" /> +<TGConnectingPoint num="38" id="1340" /> +<TGConnectingPoint num="39" id="1341" /> +<extraparam> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5100" id="1344" > <father id="1407" num="2" /> <cdparam x="249" y="399" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1313" /> +<TGConnectingPoint num="0" id="1343" /> </SUBCOMPONENT> -<SUBCOMPONENT type="5106" id="1355" > +<SUBCOMPONENT type="5104" id="1355" > <father id="1407" num="3" /> -<cdparam x="189" y="435" /> -<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="58" y="527" /> +<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" /> -<infoparam name="state0" value="WaitingForSelection" /> -<TGConnectingPoint num="0" id="1315" /> -<TGConnectingPoint num="1" id="1316" /> -<TGConnectingPoint num="2" id="1317" /> -<TGConnectingPoint num="3" id="1318" /> -<TGConnectingPoint num="4" id="1319" /> -<TGConnectingPoint num="5" id="1320" /> -<TGConnectingPoint num="6" id="1321" /> -<TGConnectingPoint num="7" id="1322" /> -<TGConnectingPoint num="8" id="1323" /> -<TGConnectingPoint num="9" id="1324" /> -<TGConnectingPoint num="10" id="1325" /> -<TGConnectingPoint num="11" id="1326" /> -<TGConnectingPoint num="12" id="1327" /> -<TGConnectingPoint num="13" id="1328" /> -<TGConnectingPoint num="14" id="1329" /> -<TGConnectingPoint num="15" id="1330" /> -<TGConnectingPoint num="16" id="1331" /> -<TGConnectingPoint num="17" id="1332" /> -<TGConnectingPoint num="18" id="1333" /> -<TGConnectingPoint num="19" id="1334" /> -<TGConnectingPoint num="20" id="1335" /> -<TGConnectingPoint num="21" id="1336" /> -<TGConnectingPoint num="22" id="1337" /> -<TGConnectingPoint num="23" id="1338" /> -<TGConnectingPoint num="24" id="1339" /> -<TGConnectingPoint num="25" id="1340" /> -<TGConnectingPoint num="26" id="1341" /> -<TGConnectingPoint num="27" id="1342" /> -<TGConnectingPoint num="28" id="1343" /> -<TGConnectingPoint num="29" id="1344" /> -<TGConnectingPoint num="30" id="1345" /> -<TGConnectingPoint num="31" id="1346" /> -<TGConnectingPoint num="32" id="1347" /> -<TGConnectingPoint num="33" id="1348" /> -<TGConnectingPoint num="34" id="1349" /> -<TGConnectingPoint num="35" id="1350" /> -<TGConnectingPoint num="36" id="1351" /> -<TGConnectingPoint num="37" id="1352" /> -<TGConnectingPoint num="38" id="1353" /> -<TGConnectingPoint num="39" id="1354" /> -<extraparam> -</extraparam> +<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" /> +<infoparam name="Send signal" value="pushCoffeeButton()" /> +<TGConnectingPoint num="0" id="1345" /> +<TGConnectingPoint num="1" id="1346" /> +<TGConnectingPoint num="2" id="1347" /> +<TGConnectingPoint num="3" id="1348" /> +<TGConnectingPoint num="4" id="1349" /> +<TGConnectingPoint num="5" id="1350" /> +<TGConnectingPoint num="6" id="1351" /> +<TGConnectingPoint num="7" id="1352" /> +<TGConnectingPoint num="8" id="1353" /> +<TGConnectingPoint num="9" id="1354" /> +<accessibility /> </SUBCOMPONENT> -<SUBCOMPONENT type="5104" id="1366" > +<SUBCOMPONENT type="5103" id="1366" > <father id="1407" num="4" /> -<cdparam x="231" y="527" /> -<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="372" y="500" /> +<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" /> -<infoparam name="Send signal" value="pushTeaButton()" /> +<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" /> +<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> <TGConnectingPoint num="0" id="1356" /> <TGConnectingPoint num="1" id="1357" /> <TGConnectingPoint num="2" id="1358" /> @@ -2681,19 +2701,19 @@ </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > <CONNECTOR type="5102" id="1414" > -<cdparam x="177" y="199" /> +<cdparam x="363" y="193" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to Send signal" value="null" /> +<infoparam name="connector from Send signal to state0" value="null" /> <TGConnectingPoint num="0" id="1413" /> -<P1 x="340" y="233" id="1520" /> -<P2 x="353" y="252" id="1522" /> +<P1 x="363" y="204" id="1430" /> +<P2 x="362" y="257" id="1441" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="1412" > <father id="1414" num="0" /> -<cdparam x="177" y="239" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<cdparam x="380" y="228" /> +<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> @@ -2703,24 +2723,25 @@ <TGConnectingPoint num="3" id="1411" /> <extraparam> <guard value="[ ]" /> -<afterMin value="" /> +<afterMin value="mechanicalDelay" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> <CONNECTOR type="5102" id="1421" > -<cdparam x="322" y="69" /> +<cdparam x="363" y="150" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> +<infoparam name="connector from state0 to Send signal" value="null" /> <TGConnectingPoint num="0" id="1420" /> -<P1 x="322" y="69" id="1518" /> -<P2 x="323" y="88" id="1478" /> +<P1 x="363" y="150" id="1487" /> +<P2 x="363" y="174" id="1429" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="1419" > <father id="1421" num="0" /> -<cdparam x="322" y="109" /> +<cdparam x="363" y="190" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -2735,20 +2756,21 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> <CONNECTOR type="5102" id="1428" > -<cdparam x="377" y="144" /> +<cdparam x="362" y="101" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> +<infoparam name="connector from start state to state0" value="null" /> <TGConnectingPoint num="0" id="1427" /> -<P1 x="323" y="118" id="1483" /> -<P2 x="356" y="174" id="1534" /> +<P1 x="362" y="101" id="1522" /> +<P2 x="363" y="120" id="1482" /> <AutomaticDrawing data="true" /> </CONNECTOR><SUBCOMPONENT type="-1" id="1426" > <father id="1428" num="0" /> -<cdparam x="377" y="184" /> +<cdparam x="362" y="141" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> @@ -2763,2293 +2785,443 @@ <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1435" > -<cdparam x="377" y="187" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="1434" /> -<P1 x="353" y="282" id="1523" /> -<P2 x="399" y="352" id="1437" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1433" > -<father id="1435" num="0" /> -<cdparam x="417" y="335" /> -<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5103" id="1439" > +<cdparam x="340" y="179" /> +<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<infoparam name="Send signal" value="push()" /> <TGConnectingPoint num="0" id="1429" /> <TGConnectingPoint num="1" id="1430" /> <TGConnectingPoint num="2" id="1431" /> <TGConnectingPoint num="3" id="1432" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> +<TGConnectingPoint num="4" id="1433" /> +<TGConnectingPoint num="5" id="1434" /> +<TGConnectingPoint num="6" id="1435" /> +<TGConnectingPoint num="7" id="1436" /> +<TGConnectingPoint num="8" id="1437" /> +<TGConnectingPoint num="9" id="1438" /> +</COMPONENT> -<COMPONENT type="5106" id="1476" > -<cdparam x="374" y="352" /> +<COMPONENT type="5106" id="1480" > +<cdparam x="337" y="257" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1436" /> -<TGConnectingPoint num="1" id="1437" /> -<TGConnectingPoint num="2" id="1438" /> -<TGConnectingPoint num="3" id="1439" /> -<TGConnectingPoint num="4" id="1440" /> -<TGConnectingPoint num="5" id="1441" /> -<TGConnectingPoint num="6" id="1442" /> -<TGConnectingPoint num="7" id="1443" /> -<TGConnectingPoint num="8" id="1444" /> -<TGConnectingPoint num="9" id="1445" /> -<TGConnectingPoint num="10" id="1446" /> -<TGConnectingPoint num="11" id="1447" /> -<TGConnectingPoint num="12" id="1448" /> -<TGConnectingPoint num="13" id="1449" /> -<TGConnectingPoint num="14" id="1450" /> -<TGConnectingPoint num="15" id="1451" /> -<TGConnectingPoint num="16" id="1452" /> -<TGConnectingPoint num="17" id="1453" /> -<TGConnectingPoint num="18" id="1454" /> -<TGConnectingPoint num="19" id="1455" /> -<TGConnectingPoint num="20" id="1456" /> -<TGConnectingPoint num="21" id="1457" /> -<TGConnectingPoint num="22" id="1458" /> -<TGConnectingPoint num="23" id="1459" /> -<TGConnectingPoint num="24" id="1460" /> -<TGConnectingPoint num="25" id="1461" /> -<TGConnectingPoint num="26" id="1462" /> -<TGConnectingPoint num="27" id="1463" /> -<TGConnectingPoint num="28" id="1464" /> -<TGConnectingPoint num="29" id="1465" /> -<TGConnectingPoint num="30" id="1466" /> -<TGConnectingPoint num="31" id="1467" /> -<TGConnectingPoint num="32" id="1468" /> -<TGConnectingPoint num="33" id="1469" /> -<TGConnectingPoint num="34" id="1470" /> -<TGConnectingPoint num="35" id="1471" /> -<TGConnectingPoint num="36" id="1472" /> -<TGConnectingPoint num="37" id="1473" /> -<TGConnectingPoint num="38" id="1474" /> -<TGConnectingPoint num="39" id="1475" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="1517" > -<cdparam x="298" y="88" /> +<TGConnectingPoint num="0" id="1440" /> +<TGConnectingPoint num="1" id="1441" /> +<TGConnectingPoint num="2" id="1442" /> +<TGConnectingPoint num="3" id="1443" /> +<TGConnectingPoint num="4" id="1444" /> +<TGConnectingPoint num="5" id="1445" /> +<TGConnectingPoint num="6" id="1446" /> +<TGConnectingPoint num="7" id="1447" /> +<TGConnectingPoint num="8" id="1448" /> +<TGConnectingPoint num="9" id="1449" /> +<TGConnectingPoint num="10" id="1450" /> +<TGConnectingPoint num="11" id="1451" /> +<TGConnectingPoint num="12" id="1452" /> +<TGConnectingPoint num="13" id="1453" /> +<TGConnectingPoint num="14" id="1454" /> +<TGConnectingPoint num="15" id="1455" /> +<TGConnectingPoint num="16" id="1456" /> +<TGConnectingPoint num="17" id="1457" /> +<TGConnectingPoint num="18" id="1458" /> +<TGConnectingPoint num="19" id="1459" /> +<TGConnectingPoint num="20" id="1460" /> +<TGConnectingPoint num="21" id="1461" /> +<TGConnectingPoint num="22" id="1462" /> +<TGConnectingPoint num="23" id="1463" /> +<TGConnectingPoint num="24" id="1464" /> +<TGConnectingPoint num="25" id="1465" /> +<TGConnectingPoint num="26" id="1466" /> +<TGConnectingPoint num="27" id="1467" /> +<TGConnectingPoint num="28" id="1468" /> +<TGConnectingPoint num="29" id="1469" /> +<TGConnectingPoint num="30" id="1470" /> +<TGConnectingPoint num="31" id="1471" /> +<TGConnectingPoint num="32" id="1472" /> +<TGConnectingPoint num="33" id="1473" /> +<TGConnectingPoint num="34" id="1474" /> +<TGConnectingPoint num="35" id="1475" /> +<TGConnectingPoint num="36" id="1476" /> +<TGConnectingPoint num="37" id="1477" /> +<TGConnectingPoint num="38" id="1478" /> +<TGConnectingPoint num="39" id="1479" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1521" > +<cdparam x="338" y="120" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1477" /> -<TGConnectingPoint num="1" id="1478" /> -<TGConnectingPoint num="2" id="1479" /> -<TGConnectingPoint num="3" id="1480" /> -<TGConnectingPoint num="4" id="1481" /> -<TGConnectingPoint num="5" id="1482" /> -<TGConnectingPoint num="6" id="1483" /> -<TGConnectingPoint num="7" id="1484" /> -<TGConnectingPoint num="8" id="1485" /> -<TGConnectingPoint num="9" id="1486" /> -<TGConnectingPoint num="10" id="1487" /> -<TGConnectingPoint num="11" id="1488" /> -<TGConnectingPoint num="12" id="1489" /> -<TGConnectingPoint num="13" id="1490" /> -<TGConnectingPoint num="14" id="1491" /> -<TGConnectingPoint num="15" id="1492" /> -<TGConnectingPoint num="16" id="1493" /> -<TGConnectingPoint num="17" id="1494" /> -<TGConnectingPoint num="18" id="1495" /> -<TGConnectingPoint num="19" id="1496" /> -<TGConnectingPoint num="20" id="1497" /> -<TGConnectingPoint num="21" id="1498" /> -<TGConnectingPoint num="22" id="1499" /> -<TGConnectingPoint num="23" id="1500" /> -<TGConnectingPoint num="24" id="1501" /> -<TGConnectingPoint num="25" id="1502" /> -<TGConnectingPoint num="26" id="1503" /> -<TGConnectingPoint num="27" id="1504" /> -<TGConnectingPoint num="28" id="1505" /> -<TGConnectingPoint num="29" id="1506" /> -<TGConnectingPoint num="30" id="1507" /> -<TGConnectingPoint num="31" id="1508" /> -<TGConnectingPoint num="32" id="1509" /> -<TGConnectingPoint num="33" id="1510" /> -<TGConnectingPoint num="34" id="1511" /> -<TGConnectingPoint num="35" id="1512" /> -<TGConnectingPoint num="36" id="1513" /> -<TGConnectingPoint num="37" id="1514" /> -<TGConnectingPoint num="38" id="1515" /> -<TGConnectingPoint num="39" id="1516" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="1519" > -<cdparam x="315" y="49" /> +<TGConnectingPoint num="0" id="1481" /> +<TGConnectingPoint num="1" id="1482" /> +<TGConnectingPoint num="2" id="1483" /> +<TGConnectingPoint num="3" id="1484" /> +<TGConnectingPoint num="4" id="1485" /> +<TGConnectingPoint num="5" id="1486" /> +<TGConnectingPoint num="6" id="1487" /> +<TGConnectingPoint num="7" id="1488" /> +<TGConnectingPoint num="8" id="1489" /> +<TGConnectingPoint num="9" id="1490" /> +<TGConnectingPoint num="10" id="1491" /> +<TGConnectingPoint num="11" id="1492" /> +<TGConnectingPoint num="12" id="1493" /> +<TGConnectingPoint num="13" id="1494" /> +<TGConnectingPoint num="14" id="1495" /> +<TGConnectingPoint num="15" id="1496" /> +<TGConnectingPoint num="16" id="1497" /> +<TGConnectingPoint num="17" id="1498" /> +<TGConnectingPoint num="18" id="1499" /> +<TGConnectingPoint num="19" id="1500" /> +<TGConnectingPoint num="20" id="1501" /> +<TGConnectingPoint num="21" id="1502" /> +<TGConnectingPoint num="22" id="1503" /> +<TGConnectingPoint num="23" id="1504" /> +<TGConnectingPoint num="24" id="1505" /> +<TGConnectingPoint num="25" id="1506" /> +<TGConnectingPoint num="26" id="1507" /> +<TGConnectingPoint num="27" id="1508" /> +<TGConnectingPoint num="28" id="1509" /> +<TGConnectingPoint num="29" id="1510" /> +<TGConnectingPoint num="30" id="1511" /> +<TGConnectingPoint num="31" id="1512" /> +<TGConnectingPoint num="32" id="1513" /> +<TGConnectingPoint num="33" id="1514" /> +<TGConnectingPoint num="34" id="1515" /> +<TGConnectingPoint num="35" id="1516" /> +<TGConnectingPoint num="36" id="1517" /> +<TGConnectingPoint num="37" id="1518" /> +<TGConnectingPoint num="38" id="1519" /> +<TGConnectingPoint num="39" id="1520" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1523" > +<cdparam x="355" y="81" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1518" /> -</COMPONENT> - -<COMPONENT type="5106" id="1573" > -<cdparam x="264" y="174" /> -<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="state0" /> -<TGConnectingPoint num="0" id="1533" /> -<TGConnectingPoint num="1" id="1534" /> -<TGConnectingPoint num="2" id="1535" /> -<TGConnectingPoint num="3" id="1536" /> -<TGConnectingPoint num="4" id="1537" /> -<TGConnectingPoint num="5" id="1538" /> -<TGConnectingPoint num="6" id="1539" /> -<TGConnectingPoint num="7" id="1540" /> -<TGConnectingPoint num="8" id="1541" /> -<TGConnectingPoint num="9" id="1542" /> -<TGConnectingPoint num="10" id="1543" /> -<TGConnectingPoint num="11" id="1544" /> -<TGConnectingPoint num="12" id="1545" /> -<TGConnectingPoint num="13" id="1546" /> -<TGConnectingPoint num="14" id="1547" /> -<TGConnectingPoint num="15" id="1548" /> -<TGConnectingPoint num="16" id="1549" /> -<TGConnectingPoint num="17" id="1550" /> -<TGConnectingPoint num="18" id="1551" /> -<TGConnectingPoint num="19" id="1552" /> -<TGConnectingPoint num="20" id="1553" /> -<TGConnectingPoint num="21" id="1554" /> -<TGConnectingPoint num="22" id="1555" /> -<TGConnectingPoint num="23" id="1556" /> -<TGConnectingPoint num="24" id="1557" /> -<TGConnectingPoint num="25" id="1558" /> -<TGConnectingPoint num="26" id="1559" /> -<TGConnectingPoint num="27" id="1560" /> -<TGConnectingPoint num="28" id="1561" /> -<TGConnectingPoint num="29" id="1562" /> -<TGConnectingPoint num="30" id="1563" /> -<TGConnectingPoint num="31" id="1564" /> -<TGConnectingPoint num="32" id="1565" /> -<TGConnectingPoint num="33" id="1566" /> -<TGConnectingPoint num="34" id="1567" /> -<TGConnectingPoint num="35" id="1568" /> -<TGConnectingPoint num="36" id="1569" /> -<TGConnectingPoint num="37" id="1570" /> -<TGConnectingPoint num="38" id="1571" /> -<TGConnectingPoint num="39" id="1572" /> -<extraparam> -</extraparam> -</COMPONENT> -<SUBCOMPONENT type="5100" id="1521" > -<father id="1573" num="0" /> -<cdparam x="333" y="213" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1520" /> -</SUBCOMPONENT> -<SUBCOMPONENT type="5103" id="1532" > -<father id="1573" num="1" /> -<cdparam x="328" y="257" /> -<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> -<infoparam name="Send signal" value="push()" /> <TGConnectingPoint num="0" id="1522" /> -<TGConnectingPoint num="1" id="1523" /> -<TGConnectingPoint num="2" id="1524" /> -<TGConnectingPoint num="3" id="1525" /> -<TGConnectingPoint num="4" id="1526" /> -<TGConnectingPoint num="5" id="1527" /> -<TGConnectingPoint num="6" id="1528" /> -<TGConnectingPoint num="7" id="1529" /> -<TGConnectingPoint num="8" id="1530" /> -<TGConnectingPoint num="9" id="1531" /> -</SUBCOMPONENT> +</COMPONENT> </AVATARStateMachineDiagramPanel> -<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="1580" > -<cdparam x="363" y="193" /> +<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > +<CONNECTOR type="5102" id="1530" > +<cdparam x="177" y="199" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="1579" /> -<P1 x="363" y="204" id="1596" /> -<P2 x="362" y="257" id="1607" /> +<infoparam name="connector from start state to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1529" /> +<P1 x="340" y="233" id="1647" /> +<P2 x="353" y="252" id="1636" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1578" > -<father id="1580" num="0" /> -<cdparam x="380" y="228" /> -<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1528" > +<father id="1530" num="0" /> +<cdparam x="177" y="239" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1574" /> -<TGConnectingPoint num="1" id="1575" /> -<TGConnectingPoint num="2" id="1576" /> -<TGConnectingPoint num="3" id="1577" /> +<TGConnectingPoint num="0" id="1524" /> +<TGConnectingPoint num="1" id="1525" /> +<TGConnectingPoint num="2" id="1526" /> +<TGConnectingPoint num="3" id="1527" /> <extraparam> <guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> +<afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1587" > -<cdparam x="363" y="150" /> +<CONNECTOR type="5102" id="1537" > +<cdparam x="322" y="69" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="1586" /> -<P1 x="363" y="150" id="1653" /> -<P2 x="363" y="174" id="1595" /> +<infoparam name="connector from start state to state0" value="null" /> +<TGConnectingPoint num="0" id="1536" /> +<P1 x="322" y="69" id="1634" /> +<P2 x="323" y="88" id="1594" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1585" > -<father id="1587" num="0" /> -<cdparam x="363" y="190" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1535" > +<father id="1537" num="0" /> +<cdparam x="322" y="109" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1581" /> -<TGConnectingPoint num="1" id="1582" /> -<TGConnectingPoint num="2" id="1583" /> -<TGConnectingPoint num="3" id="1584" /> +<TGConnectingPoint num="0" id="1531" /> +<TGConnectingPoint num="1" id="1532" /> +<TGConnectingPoint num="2" id="1533" /> +<TGConnectingPoint num="3" id="1534" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> -<CONNECTOR type="5102" id="1594" > -<cdparam x="362" y="101" /> +<CONNECTOR type="5102" id="1544" > +<cdparam x="377" y="144" /> <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="1593" /> -<P1 x="362" y="101" id="1688" /> -<P2 x="363" y="120" id="1648" /> +<infoparam name="connector from state0 to Send signal" value="null" /> +<TGConnectingPoint num="0" id="1543" /> +<P1 x="323" y="118" id="1599" /> +<P2 x="356" y="174" id="1650" /> <AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1592" > -<father id="1594" num="0" /> -<cdparam x="362" y="141" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1542" > +<father id="1544" num="0" /> +<cdparam x="377" y="184" /> <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1588" /> -<TGConnectingPoint num="1" id="1589" /> -<TGConnectingPoint num="2" id="1590" /> -<TGConnectingPoint num="3" id="1591" /> +<TGConnectingPoint num="0" id="1538" /> +<TGConnectingPoint num="1" id="1539" /> +<TGConnectingPoint num="2" id="1540" /> +<TGConnectingPoint num="3" id="1541" /> <extraparam> <guard value="[ ]" /> <afterMin value="" /> <afterMax value="" /> <computeMin value="" /> <computeMax value="" /> +<probability value="" /> </extraparam> </SUBCOMPONENT> -<COMPONENT type="5103" id="1605" > -<cdparam x="338" y="179" /> -<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<CONNECTOR type="5102" id="1551" > +<cdparam x="377" y="187" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector from Send signal to state0" value="null" /> +<TGConnectingPoint num="0" id="1550" /> +<P1 x="353" y="282" id="1637" /> +<P2 x="399" y="352" id="1553" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1549" > +<father id="1551" num="0" /> +<cdparam x="417" y="335" /> +<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="push()" /> -<TGConnectingPoint num="0" id="1595" /> -<TGConnectingPoint num="1" id="1596" /> -<TGConnectingPoint num="2" id="1597" /> -<TGConnectingPoint num="3" id="1598" /> -<TGConnectingPoint num="4" id="1599" /> -<TGConnectingPoint num="5" id="1600" /> -<TGConnectingPoint num="6" id="1601" /> -<TGConnectingPoint num="7" id="1602" /> -<TGConnectingPoint num="8" id="1603" /> -<TGConnectingPoint num="9" id="1604" /> -</COMPONENT> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1545" /> +<TGConnectingPoint num="1" id="1546" /> +<TGConnectingPoint num="2" id="1547" /> +<TGConnectingPoint num="3" id="1548" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="mechanicalDelay" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> -<COMPONENT type="5106" id="1646" > -<cdparam x="337" y="257" /> +<COMPONENT type="5106" id="1592" > +<cdparam x="374" y="352" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1606" /> -<TGConnectingPoint num="1" id="1607" /> -<TGConnectingPoint num="2" id="1608" /> -<TGConnectingPoint num="3" id="1609" /> -<TGConnectingPoint num="4" id="1610" /> -<TGConnectingPoint num="5" id="1611" /> -<TGConnectingPoint num="6" id="1612" /> -<TGConnectingPoint num="7" id="1613" /> -<TGConnectingPoint num="8" id="1614" /> -<TGConnectingPoint num="9" id="1615" /> -<TGConnectingPoint num="10" id="1616" /> -<TGConnectingPoint num="11" id="1617" /> -<TGConnectingPoint num="12" id="1618" /> -<TGConnectingPoint num="13" id="1619" /> -<TGConnectingPoint num="14" id="1620" /> -<TGConnectingPoint num="15" id="1621" /> -<TGConnectingPoint num="16" id="1622" /> -<TGConnectingPoint num="17" id="1623" /> -<TGConnectingPoint num="18" id="1624" /> -<TGConnectingPoint num="19" id="1625" /> -<TGConnectingPoint num="20" id="1626" /> -<TGConnectingPoint num="21" id="1627" /> -<TGConnectingPoint num="22" id="1628" /> -<TGConnectingPoint num="23" id="1629" /> -<TGConnectingPoint num="24" id="1630" /> -<TGConnectingPoint num="25" id="1631" /> -<TGConnectingPoint num="26" id="1632" /> -<TGConnectingPoint num="27" id="1633" /> -<TGConnectingPoint num="28" id="1634" /> -<TGConnectingPoint num="29" id="1635" /> -<TGConnectingPoint num="30" id="1636" /> -<TGConnectingPoint num="31" id="1637" /> -<TGConnectingPoint num="32" id="1638" /> -<TGConnectingPoint num="33" id="1639" /> -<TGConnectingPoint num="34" id="1640" /> -<TGConnectingPoint num="35" id="1641" /> -<TGConnectingPoint num="36" id="1642" /> -<TGConnectingPoint num="37" id="1643" /> -<TGConnectingPoint num="38" id="1644" /> -<TGConnectingPoint num="39" id="1645" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="1687" > -<cdparam x="338" y="120" /> +<TGConnectingPoint num="0" id="1552" /> +<TGConnectingPoint num="1" id="1553" /> +<TGConnectingPoint num="2" id="1554" /> +<TGConnectingPoint num="3" id="1555" /> +<TGConnectingPoint num="4" id="1556" /> +<TGConnectingPoint num="5" id="1557" /> +<TGConnectingPoint num="6" id="1558" /> +<TGConnectingPoint num="7" id="1559" /> +<TGConnectingPoint num="8" id="1560" /> +<TGConnectingPoint num="9" id="1561" /> +<TGConnectingPoint num="10" id="1562" /> +<TGConnectingPoint num="11" id="1563" /> +<TGConnectingPoint num="12" id="1564" /> +<TGConnectingPoint num="13" id="1565" /> +<TGConnectingPoint num="14" id="1566" /> +<TGConnectingPoint num="15" id="1567" /> +<TGConnectingPoint num="16" id="1568" /> +<TGConnectingPoint num="17" id="1569" /> +<TGConnectingPoint num="18" id="1570" /> +<TGConnectingPoint num="19" id="1571" /> +<TGConnectingPoint num="20" id="1572" /> +<TGConnectingPoint num="21" id="1573" /> +<TGConnectingPoint num="22" id="1574" /> +<TGConnectingPoint num="23" id="1575" /> +<TGConnectingPoint num="24" id="1576" /> +<TGConnectingPoint num="25" id="1577" /> +<TGConnectingPoint num="26" id="1578" /> +<TGConnectingPoint num="27" id="1579" /> +<TGConnectingPoint num="28" id="1580" /> +<TGConnectingPoint num="29" id="1581" /> +<TGConnectingPoint num="30" id="1582" /> +<TGConnectingPoint num="31" id="1583" /> +<TGConnectingPoint num="32" id="1584" /> +<TGConnectingPoint num="33" id="1585" /> +<TGConnectingPoint num="34" id="1586" /> +<TGConnectingPoint num="35" id="1587" /> +<TGConnectingPoint num="36" id="1588" /> +<TGConnectingPoint num="37" id="1589" /> +<TGConnectingPoint num="38" id="1590" /> +<TGConnectingPoint num="39" id="1591" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1633" > +<cdparam x="298" y="88" /> <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1647" /> -<TGConnectingPoint num="1" id="1648" /> -<TGConnectingPoint num="2" id="1649" /> -<TGConnectingPoint num="3" id="1650" /> -<TGConnectingPoint num="4" id="1651" /> -<TGConnectingPoint num="5" id="1652" /> -<TGConnectingPoint num="6" id="1653" /> -<TGConnectingPoint num="7" id="1654" /> -<TGConnectingPoint num="8" id="1655" /> -<TGConnectingPoint num="9" id="1656" /> -<TGConnectingPoint num="10" id="1657" /> -<TGConnectingPoint num="11" id="1658" /> -<TGConnectingPoint num="12" id="1659" /> -<TGConnectingPoint num="13" id="1660" /> -<TGConnectingPoint num="14" id="1661" /> -<TGConnectingPoint num="15" id="1662" /> -<TGConnectingPoint num="16" id="1663" /> -<TGConnectingPoint num="17" id="1664" /> -<TGConnectingPoint num="18" id="1665" /> -<TGConnectingPoint num="19" id="1666" /> -<TGConnectingPoint num="20" id="1667" /> -<TGConnectingPoint num="21" id="1668" /> -<TGConnectingPoint num="22" id="1669" /> -<TGConnectingPoint num="23" id="1670" /> -<TGConnectingPoint num="24" id="1671" /> -<TGConnectingPoint num="25" id="1672" /> -<TGConnectingPoint num="26" id="1673" /> -<TGConnectingPoint num="27" id="1674" /> -<TGConnectingPoint num="28" id="1675" /> -<TGConnectingPoint num="29" id="1676" /> -<TGConnectingPoint num="30" id="1677" /> -<TGConnectingPoint num="31" id="1678" /> -<TGConnectingPoint num="32" id="1679" /> -<TGConnectingPoint num="33" id="1680" /> -<TGConnectingPoint num="34" id="1681" /> -<TGConnectingPoint num="35" id="1682" /> -<TGConnectingPoint num="36" id="1683" /> -<TGConnectingPoint num="37" id="1684" /> -<TGConnectingPoint num="38" id="1685" /> -<TGConnectingPoint num="39" id="1686" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="1689" > -<cdparam x="355" y="81" /> +<TGConnectingPoint num="0" id="1593" /> +<TGConnectingPoint num="1" id="1594" /> +<TGConnectingPoint num="2" id="1595" /> +<TGConnectingPoint num="3" id="1596" /> +<TGConnectingPoint num="4" id="1597" /> +<TGConnectingPoint num="5" id="1598" /> +<TGConnectingPoint num="6" id="1599" /> +<TGConnectingPoint num="7" id="1600" /> +<TGConnectingPoint num="8" id="1601" /> +<TGConnectingPoint num="9" id="1602" /> +<TGConnectingPoint num="10" id="1603" /> +<TGConnectingPoint num="11" id="1604" /> +<TGConnectingPoint num="12" id="1605" /> +<TGConnectingPoint num="13" id="1606" /> +<TGConnectingPoint num="14" id="1607" /> +<TGConnectingPoint num="15" id="1608" /> +<TGConnectingPoint num="16" id="1609" /> +<TGConnectingPoint num="17" id="1610" /> +<TGConnectingPoint num="18" id="1611" /> +<TGConnectingPoint num="19" id="1612" /> +<TGConnectingPoint num="20" id="1613" /> +<TGConnectingPoint num="21" id="1614" /> +<TGConnectingPoint num="22" id="1615" /> +<TGConnectingPoint num="23" id="1616" /> +<TGConnectingPoint num="24" id="1617" /> +<TGConnectingPoint num="25" id="1618" /> +<TGConnectingPoint num="26" id="1619" /> +<TGConnectingPoint num="27" id="1620" /> +<TGConnectingPoint num="28" id="1621" /> +<TGConnectingPoint num="29" id="1622" /> +<TGConnectingPoint num="30" id="1623" /> +<TGConnectingPoint num="31" id="1624" /> +<TGConnectingPoint num="32" id="1625" /> +<TGConnectingPoint num="33" id="1626" /> +<TGConnectingPoint num="34" id="1627" /> +<TGConnectingPoint num="35" id="1628" /> +<TGConnectingPoint num="36" id="1629" /> +<TGConnectingPoint num="37" id="1630" /> +<TGConnectingPoint num="38" id="1631" /> +<TGConnectingPoint num="39" id="1632" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="1635" > +<cdparam x="315" y="49" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1688" /> +<TGConnectingPoint num="0" id="1634" /> </COMPONENT> - -</AVATARStateMachineDiagramPanel> - -</Modeling> - - - - -<Modeling type="AVATAR Design" nameTab="DesignWithNoCompositeState" > -<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="1400" minY="10" maxY="900" > -<MainCode value="void __user_init() {"/> -<MainCode value="}"/> -<Optimized value="true" /> -<Validated value="Wallet;CoffeeMachine;TeaButton;CoffeeButton;" /> -<Ignored value="" /> - -<CONNECTOR type="5002" id="1691" > -<cdparam x="321" y="567" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Block1 to Block0" value="" /> -<TGConnectingPoint num="0" id="1690" /> -<P1 x="559" y="330" id="1744" /> -<P2 x="560" y="377" id="1802" /> -<AutomaticDrawing data="true" /> -<extraparam> -<isd value="in pushCoffeeButton()" /> -<oso value="out push()" /> -<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> -</extraparam> -</CONNECTOR> -<CONNECTOR type="5002" id="1693" > -<cdparam x="275" y="114" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Block0 to Block0" value="" /> -<TGConnectingPoint num="0" id="1692" /> -<P1 x="306" y="109" id="1724" /> -<P2 x="445" y="108" id="1798" /> -<AutomaticDrawing data="true" /> -<extraparam> -<iso value="in getCoin(int nbOfCoins)" /> -<osd value="out ejectCoin(int nbOfCoins)" /> -<isd value="in getCoin(int nbOfCoins)" /> -<oso value="out putCoin(int nbOfCoins)" /> -<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> -</extraparam> -</CONNECTOR> -<CONNECTOR type="5002" id="1695" > -<cdparam x="623" y="565" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Block1 to Block0" value="" /> -<TGConnectingPoint num="0" id="1694" /> -<P1 x="789" y="326" id="1769" /> -<P2 x="790" y="377" id="1803" /> -<AutomaticDrawing data="true" /> -<extraparam> -<isd value="in pushTeaButton()" /> -<oso value="out push()" /> -<FIFOType asynchronous="false" size="1024" blocking="false" private="true" broadcast="false" lossy="false" /> -</extraparam> -</CONNECTOR> -<COMPONENT type="303" id="1712" > -<cdparam x="92" y="385" /> -<sizeparam width="334" height="84" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="UPPAAL Pragma" value="A[] Wallet.nbOfCoins<3 -A[] CoffeeButton.main -A<> CoffeeMachine.WaitingForSelection -E<> CoffeeMachine.WaitingForSelection -" /> -<TGConnectingPoint num="0" id="1696" /> -<TGConnectingPoint num="1" id="1697" /> -<TGConnectingPoint num="2" id="1698" /> -<TGConnectingPoint num="3" id="1699" /> -<TGConnectingPoint num="4" id="1700" /> -<TGConnectingPoint num="5" id="1701" /> -<TGConnectingPoint num="6" id="1702" /> -<TGConnectingPoint num="7" id="1703" /> -<TGConnectingPoint num="8" id="1704" /> -<TGConnectingPoint num="9" id="1705" /> -<TGConnectingPoint num="10" id="1706" /> -<TGConnectingPoint num="11" id="1707" /> -<TGConnectingPoint num="12" id="1708" /> -<TGConnectingPoint num="13" id="1709" /> -<TGConnectingPoint num="14" id="1710" /> -<TGConnectingPoint num="15" id="1711" /> -<extraparam> -<Line value="A[] Wallet.nbOfCoins<3" /> -<Line value="A[] CoffeeButton.main" /> -<Line value="A<> CoffeeMachine.WaitingForSelection" /> -<Line value="E<> CoffeeMachine.WaitingForSelection" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5000" id="1737" > -<cdparam x="106" y="55" /> -<sizeparam width="200" height="218" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Block0" value="Wallet" /> -<TGConnectingPoint num="0" id="1713" /> -<TGConnectingPoint num="1" id="1714" /> -<TGConnectingPoint num="2" id="1715" /> -<TGConnectingPoint num="3" id="1716" /> -<TGConnectingPoint num="4" id="1717" /> -<TGConnectingPoint num="5" id="1718" /> -<TGConnectingPoint num="6" id="1719" /> -<TGConnectingPoint num="7" id="1720" /> -<TGConnectingPoint num="8" id="1721" /> -<TGConnectingPoint num="9" id="1722" /> -<TGConnectingPoint num="10" id="1723" /> -<TGConnectingPoint num="11" id="1724" /> -<TGConnectingPoint num="12" id="1725" /> -<TGConnectingPoint num="13" id="1726" /> -<TGConnectingPoint num="14" id="1727" /> -<TGConnectingPoint num="15" id="1728" /> -<TGConnectingPoint num="16" id="1729" /> -<TGConnectingPoint num="17" id="1730" /> -<TGConnectingPoint num="18" id="1731" /> -<TGConnectingPoint num="19" id="1732" /> -<TGConnectingPoint num="20" id="1733" /> -<TGConnectingPoint num="21" id="1734" /> -<TGConnectingPoint num="22" id="1735" /> -<TGConnectingPoint num="23" id="1736" /> -<extraparam> -<CryptoBlock value="false" /> -<Attribute access="0" id="nbOfCoins" value="2" type="8" typeOther="" /> -<Attribute access="0" id="x" value="1" type="8" typeOther="" /> -<Attribute access="0" id="minUserDelay" value="50" type="8" typeOther="" /> -<Attribute access="0" id="maxUserDelay" value="70" type="8" typeOther="" /> -<Method value="contentOfWallet(int nbOfCoins)" /> -<Signal value="in getCoin(int nbOfCoins)" attached="true" /> -<Signal value="out putCoin(int nbOfCoins)" attached="true" /> -</extraparam> -</COMPONENT> - -<COMPONENT type="5000" id="1812" > -<cdparam x="445" y="19" /> -<sizeparam width="461" height="358" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Block0" value="CoffeeMachine" /> -<TGConnectingPoint num="0" id="1788" /> -<TGConnectingPoint num="1" id="1789" /> -<TGConnectingPoint num="2" id="1790" /> -<TGConnectingPoint num="3" id="1791" /> -<TGConnectingPoint num="4" id="1792" /> -<TGConnectingPoint num="5" id="1793" /> -<TGConnectingPoint num="6" id="1794" /> -<TGConnectingPoint num="7" id="1795" /> -<TGConnectingPoint num="8" id="1796" /> -<TGConnectingPoint num="9" id="1797" /> -<TGConnectingPoint num="10" id="1798" /> -<TGConnectingPoint num="11" id="1799" /> -<TGConnectingPoint num="12" id="1800" /> -<TGConnectingPoint num="13" id="1801" /> -<TGConnectingPoint num="14" id="1802" /> -<TGConnectingPoint num="15" id="1803" /> -<TGConnectingPoint num="16" id="1804" /> -<TGConnectingPoint num="17" id="1805" /> -<TGConnectingPoint num="18" id="1806" /> -<TGConnectingPoint num="19" id="1807" /> -<TGConnectingPoint num="20" id="1808" /> -<TGConnectingPoint num="21" id="1809" /> -<TGConnectingPoint num="22" id="1810" /> -<TGConnectingPoint num="23" id="1811" /> -<extraparam> -<CryptoBlock value="false" /> -<Attribute access="0" id="teaMinDelay" value="3" type="8" typeOther="" /> -<Attribute access="0" id="teaMaxDelay" value="8" type="8" typeOther="" /> -<Attribute access="0" id="coffeeMinDelay" value="5" type="8" typeOther="" /> -<Attribute access="0" id="coffeeMaxDelay" value="10" type="8" typeOther="" /> -<Attribute access="0" id="coinDelay" value="50" type="8" typeOther="" /> -<Attribute access="0" id="x" value="0" type="8" typeOther="" /> -<Attribute access="0" id="nbOfCoins" value="0" type="8" typeOther="" /> -<Method value="beverageReady()" /> -<Signal value="in pushCoffeeButton()" attached="true" /> -<Signal value="in pushTeaButton()" attached="true" /> -<Signal value="in getCoin(int nbOfCoins)" attached="true" /> -<Signal value="out ejectCoin(int nbOfCoins)" attached="true" /> -</extraparam> -</COMPONENT> -<SUBCOMPONENT type="5000" id="1762" > -<father id="1812" num="0" /> -<cdparam x="464" y="228" /> -<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" /> -<infoparam name="Block1" value="CoffeeButton" /> -<TGConnectingPoint num="0" id="1738" /> -<TGConnectingPoint num="1" id="1739" /> -<TGConnectingPoint num="2" id="1740" /> -<TGConnectingPoint num="3" id="1741" /> -<TGConnectingPoint num="4" id="1742" /> -<TGConnectingPoint num="5" id="1743" /> -<TGConnectingPoint num="6" id="1744" /> -<TGConnectingPoint num="7" id="1745" /> -<TGConnectingPoint num="8" id="1746" /> -<TGConnectingPoint num="9" id="1747" /> -<TGConnectingPoint num="10" id="1748" /> -<TGConnectingPoint num="11" id="1749" /> -<TGConnectingPoint num="12" id="1750" /> -<TGConnectingPoint num="13" id="1751" /> -<TGConnectingPoint num="14" id="1752" /> -<TGConnectingPoint num="15" id="1753" /> -<TGConnectingPoint num="16" id="1754" /> -<TGConnectingPoint num="17" id="1755" /> -<TGConnectingPoint num="18" id="1756" /> -<TGConnectingPoint num="19" id="1757" /> -<TGConnectingPoint num="20" id="1758" /> -<TGConnectingPoint num="21" id="1759" /> -<TGConnectingPoint num="22" id="1760" /> -<TGConnectingPoint num="23" id="1761" /> -<extraparam> -<CryptoBlock value="false" /> -<Attribute access="0" id="mechanicalDelay" value="80" type="8" typeOther="" /> -<Signal value="out push()" attached="true" /> -</extraparam> -</SUBCOMPONENT> -<SUBCOMPONENT type="5000" id="1787" > -<father id="1812" num="1" /> -<cdparam x="695" y="224" /> -<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" /> -<infoparam name="Block1" value="TeaButton" /> -<TGConnectingPoint num="0" id="1763" /> -<TGConnectingPoint num="1" id="1764" /> -<TGConnectingPoint num="2" id="1765" /> -<TGConnectingPoint num="3" id="1766" /> -<TGConnectingPoint num="4" id="1767" /> -<TGConnectingPoint num="5" id="1768" /> -<TGConnectingPoint num="6" id="1769" /> -<TGConnectingPoint num="7" id="1770" /> -<TGConnectingPoint num="8" id="1771" /> -<TGConnectingPoint num="9" id="1772" /> -<TGConnectingPoint num="10" id="1773" /> -<TGConnectingPoint num="11" id="1774" /> -<TGConnectingPoint num="12" id="1775" /> -<TGConnectingPoint num="13" id="1776" /> -<TGConnectingPoint num="14" id="1777" /> -<TGConnectingPoint num="15" id="1778" /> -<TGConnectingPoint num="16" id="1779" /> -<TGConnectingPoint num="17" id="1780" /> -<TGConnectingPoint num="18" id="1781" /> -<TGConnectingPoint num="19" id="1782" /> -<TGConnectingPoint num="20" id="1783" /> -<TGConnectingPoint num="21" id="1784" /> -<TGConnectingPoint num="22" id="1785" /> -<TGConnectingPoint num="23" id="1786" /> -<extraparam> -<CryptoBlock value="false" /> -<Attribute access="0" id="mechanicalDelay" value="10" type="8" typeOther="" /> -<Signal value="out push()" attached="true" /> -</extraparam> -</SUBCOMPONENT> - - -</AVATARBlockDiagramPanel> - -<AVATARStateMachineDiagramPanel name="Wallet" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="1819" > -<cdparam x="516" y="264" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="1818" /> -<P1 x="485" y="219" id="1860" /> -<P2 x="485" y="274" id="1871" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1817" > -<father id="1819" num="0" /> -<cdparam x="493" y="251" /> -<sizeparam width="173" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1813" /> -<TGConnectingPoint num="1" id="1814" /> -<TGConnectingPoint num="2" id="1815" /> -<TGConnectingPoint num="3" id="1816" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<actions value="nbOfCoins = nbOfCoins + x" /> -<actions value="contentOfWallet(nbOfCoins)" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="1826" > -<cdparam x="382" y="165" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="1825" /> -<P1 x="382" y="165" id="1967" /> -<P2 x="485" y="189" id="1859" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1824" > -<father id="1826" num="0" /> -<cdparam x="382" y="205" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1820" /> -<TGConnectingPoint num="1" id="1821" /> -<TGConnectingPoint num="2" id="1822" /> -<TGConnectingPoint num="3" id="1823" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="1833" > -<cdparam x="223" y="260" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="1832" /> -<P1 x="251" y="231" id="1849" /> -<P2 x="252" y="300" id="1912" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1831" > -<father id="1833" num="0" /> -<cdparam x="163" y="252" /> -<sizeparam width="221" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1827" /> -<TGConnectingPoint num="1" id="1828" /> -<TGConnectingPoint num="2" id="1829" /> -<TGConnectingPoint num="3" id="1830" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="minUserDelay" /> -<afterMax value="maxUserDelay" /> -<computeMin value="" /> -<computeMax value="" /> -<actions value="nbOfCoins = nbOfCoins - x" /> -<actions value="contentOfWallet(nbOfCoins)" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="1840" > -<cdparam x="357" y="165" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="1839" /> -<P1 x="357" y="165" id="1966" /> -<P2 x="251" y="201" id="1848" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1838" > -<father id="1840" num="0" /> -<cdparam x="220" y="174" /> -<sizeparam width="99" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1834" /> -<TGConnectingPoint num="1" id="1835" /> -<TGConnectingPoint num="2" id="1836" /> -<TGConnectingPoint num="3" id="1837" /> -<extraparam> -<guard value="[nbOfCoins > 0]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="1847" > -<cdparam x="369" y="115" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="1846" /> -<P1 x="370" y="64" id="1993" /> -<P2 x="370" y="135" id="1953" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1845" > -<father id="1847" num="0" /> -<cdparam x="376" y="105" /> -<sizeparam width="173" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1841" /> -<TGConnectingPoint num="1" id="1842" /> -<TGConnectingPoint num="2" id="1843" /> -<TGConnectingPoint num="3" id="1844" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<actions value="contentOfWallet(nbOfCoins)" /> -</extraparam> -</SUBCOMPONENT> - -<COMPONENT type="5103" id="1858" > -<cdparam x="214" y="206" /> -<sizeparam width="74" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="putCoin(x)" /> -<TGConnectingPoint num="0" id="1848" /> -<TGConnectingPoint num="1" id="1849" /> -<TGConnectingPoint num="2" id="1850" /> -<TGConnectingPoint num="3" id="1851" /> -<TGConnectingPoint num="4" id="1852" /> -<TGConnectingPoint num="5" id="1853" /> -<TGConnectingPoint num="6" id="1854" /> -<TGConnectingPoint num="7" id="1855" /> -<TGConnectingPoint num="8" id="1856" /> -<TGConnectingPoint num="9" id="1857" /> -</COMPONENT> - -<COMPONENT type="5104" id="1869" > -<cdparam x="444" y="194" /> -<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Receive signal" value="getCoin(x)" /> -<TGConnectingPoint num="0" id="1859" /> -<TGConnectingPoint num="1" id="1860" /> -<TGConnectingPoint num="2" id="1861" /> -<TGConnectingPoint num="3" id="1862" /> -<TGConnectingPoint num="4" id="1863" /> -<TGConnectingPoint num="5" id="1864" /> -<TGConnectingPoint num="6" id="1865" /> -<TGConnectingPoint num="7" id="1866" /> -<TGConnectingPoint num="8" id="1867" /> -<TGConnectingPoint num="9" id="1868" /> -</COMPONENT> - -<COMPONENT type="5106" id="1910" > -<cdparam x="460" y="274" /> -<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1870" /> -<TGConnectingPoint num="1" id="1871" /> -<TGConnectingPoint num="2" id="1872" /> -<TGConnectingPoint num="3" id="1873" /> -<TGConnectingPoint num="4" id="1874" /> -<TGConnectingPoint num="5" id="1875" /> -<TGConnectingPoint num="6" id="1876" /> -<TGConnectingPoint num="7" id="1877" /> -<TGConnectingPoint num="8" id="1878" /> -<TGConnectingPoint num="9" id="1879" /> -<TGConnectingPoint num="10" id="1880" /> -<TGConnectingPoint num="11" id="1881" /> -<TGConnectingPoint num="12" id="1882" /> -<TGConnectingPoint num="13" id="1883" /> -<TGConnectingPoint num="14" id="1884" /> -<TGConnectingPoint num="15" id="1885" /> -<TGConnectingPoint num="16" id="1886" /> -<TGConnectingPoint num="17" id="1887" /> -<TGConnectingPoint num="18" id="1888" /> -<TGConnectingPoint num="19" id="1889" /> -<TGConnectingPoint num="20" id="1890" /> -<TGConnectingPoint num="21" id="1891" /> -<TGConnectingPoint num="22" id="1892" /> -<TGConnectingPoint num="23" id="1893" /> -<TGConnectingPoint num="24" id="1894" /> -<TGConnectingPoint num="25" id="1895" /> -<TGConnectingPoint num="26" id="1896" /> -<TGConnectingPoint num="27" id="1897" /> -<TGConnectingPoint num="28" id="1898" /> -<TGConnectingPoint num="29" id="1899" /> -<TGConnectingPoint num="30" id="1900" /> -<TGConnectingPoint num="31" id="1901" /> -<TGConnectingPoint num="32" id="1902" /> -<TGConnectingPoint num="33" id="1903" /> -<TGConnectingPoint num="34" id="1904" /> -<TGConnectingPoint num="35" id="1905" /> -<TGConnectingPoint num="36" id="1906" /> -<TGConnectingPoint num="37" id="1907" /> -<TGConnectingPoint num="38" id="1908" /> -<TGConnectingPoint num="39" id="1909" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="1951" > -<cdparam x="227" y="300" /> -<sizeparam width="50" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1911" /> -<TGConnectingPoint num="1" id="1912" /> -<TGConnectingPoint num="2" id="1913" /> -<TGConnectingPoint num="3" id="1914" /> -<TGConnectingPoint num="4" id="1915" /> -<TGConnectingPoint num="5" id="1916" /> -<TGConnectingPoint num="6" id="1917" /> -<TGConnectingPoint num="7" id="1918" /> -<TGConnectingPoint num="8" id="1919" /> -<TGConnectingPoint num="9" id="1920" /> -<TGConnectingPoint num="10" id="1921" /> -<TGConnectingPoint num="11" id="1922" /> -<TGConnectingPoint num="12" id="1923" /> -<TGConnectingPoint num="13" id="1924" /> -<TGConnectingPoint num="14" id="1925" /> -<TGConnectingPoint num="15" id="1926" /> -<TGConnectingPoint num="16" id="1927" /> -<TGConnectingPoint num="17" id="1928" /> -<TGConnectingPoint num="18" id="1929" /> -<TGConnectingPoint num="19" id="1930" /> -<TGConnectingPoint num="20" id="1931" /> -<TGConnectingPoint num="21" id="1932" /> -<TGConnectingPoint num="22" id="1933" /> -<TGConnectingPoint num="23" id="1934" /> -<TGConnectingPoint num="24" id="1935" /> -<TGConnectingPoint num="25" id="1936" /> -<TGConnectingPoint num="26" id="1937" /> -<TGConnectingPoint num="27" id="1938" /> -<TGConnectingPoint num="28" id="1939" /> -<TGConnectingPoint num="29" id="1940" /> -<TGConnectingPoint num="30" id="1941" /> -<TGConnectingPoint num="31" id="1942" /> -<TGConnectingPoint num="32" id="1943" /> -<TGConnectingPoint num="33" id="1944" /> -<TGConnectingPoint num="34" id="1945" /> -<TGConnectingPoint num="35" id="1946" /> -<TGConnectingPoint num="36" id="1947" /> -<TGConnectingPoint num="37" id="1948" /> -<TGConnectingPoint num="38" id="1949" /> -<TGConnectingPoint num="39" id="1950" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="1992" > -<cdparam x="345" y="135" /> -<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="1952" /> -<TGConnectingPoint num="1" id="1953" /> -<TGConnectingPoint num="2" id="1954" /> -<TGConnectingPoint num="3" id="1955" /> -<TGConnectingPoint num="4" id="1956" /> -<TGConnectingPoint num="5" id="1957" /> -<TGConnectingPoint num="6" id="1958" /> -<TGConnectingPoint num="7" id="1959" /> -<TGConnectingPoint num="8" id="1960" /> -<TGConnectingPoint num="9" id="1961" /> -<TGConnectingPoint num="10" id="1962" /> -<TGConnectingPoint num="11" id="1963" /> -<TGConnectingPoint num="12" id="1964" /> -<TGConnectingPoint num="13" id="1965" /> -<TGConnectingPoint num="14" id="1966" /> -<TGConnectingPoint num="15" id="1967" /> -<TGConnectingPoint num="16" id="1968" /> -<TGConnectingPoint num="17" id="1969" /> -<TGConnectingPoint num="18" id="1970" /> -<TGConnectingPoint num="19" id="1971" /> -<TGConnectingPoint num="20" id="1972" /> -<TGConnectingPoint num="21" id="1973" /> -<TGConnectingPoint num="22" id="1974" /> -<TGConnectingPoint num="23" id="1975" /> -<TGConnectingPoint num="24" id="1976" /> -<TGConnectingPoint num="25" id="1977" /> -<TGConnectingPoint num="26" id="1978" /> -<TGConnectingPoint num="27" id="1979" /> -<TGConnectingPoint num="28" id="1980" /> -<TGConnectingPoint num="29" id="1981" /> -<TGConnectingPoint num="30" id="1982" /> -<TGConnectingPoint num="31" id="1983" /> -<TGConnectingPoint num="32" id="1984" /> -<TGConnectingPoint num="33" id="1985" /> -<TGConnectingPoint num="34" id="1986" /> -<TGConnectingPoint num="35" id="1987" /> -<TGConnectingPoint num="36" id="1988" /> -<TGConnectingPoint num="37" id="1989" /> -<TGConnectingPoint num="38" id="1990" /> -<TGConnectingPoint num="39" id="1991" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="1994" > -<cdparam x="363" y="44" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="1993" /> -</COMPONENT> - - -</AVATARStateMachineDiagramPanel> - -<AVATARStateMachineDiagramPanel name="CoffeeMachine" minX="10" maxX="1400" minY="10" maxY="1400" > -<CONNECTOR type="5102" id="2001" > -<cdparam x="691" y="288" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2000" /> -<P1 x="699" y="289" id="2206" /> -<P2 x="699" y="316" id="2178" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="1999" > -<father id="2001" num="0" /> -<cdparam x="691" y="328" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="1995" /> -<TGConnectingPoint num="1" id="1996" /> -<TGConnectingPoint num="2" id="1997" /> -<TGConnectingPoint num="3" id="1998" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2008" > -<cdparam x="481" y="501" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to stop state" value="null" /> -<TGConnectingPoint num="0" id="2007" /> -<P1 x="433" y="526" id="2105" /> -<P2 x="323" y="748" id="2334" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2006" > -<father id="2008" num="0" /> -<cdparam x="420" y="552" /> -<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2002" /> -<TGConnectingPoint num="1" id="2003" /> -<TGConnectingPoint num="2" id="2004" /> -<TGConnectingPoint num="3" id="2005" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<actions value="nbOfCoins = 0" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2015" > -<cdparam x="555" y="559" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2014" /> -<P1 x="317" y="456" id="2130" /> -<P2 x="433" y="496" id="2104" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2013" > -<father id="2015" num="0" /> -<cdparam x="395" y="448" /> -<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2009" /> -<TGConnectingPoint num="1" id="2010" /> -<TGConnectingPoint num="2" id="2011" /> -<TGConnectingPoint num="3" id="2012" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="coinDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2022" > -<cdparam x="355" y="545" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to stop state" value="null" /> -<TGConnectingPoint num="0" id="2021" /> -<P1 x="289" y="553" id="2116" /> -<P2 x="289" y="748" id="2326" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2020" > -<father id="2022" num="0" /> -<cdparam x="284" y="594" /> -<sizeparam width="248" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2016" /> -<TGConnectingPoint num="1" id="2017" /> -<TGConnectingPoint num="2" id="2018" /> -<TGConnectingPoint num="3" id="2019" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="teaMinDelay" /> -<computeMax value="teaMaxDelay" /> -<actions value="nbOfCoins = 0" /> -<actions value="beverageReady()" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2029" > -<cdparam x="295" y="465" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2028" /> -<P1 x="284" y="476" id="2141" /> -<P2 x="289" y="523" id="2115" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2027" > -<father id="2029" num="0" /> -<cdparam x="295" y="505" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2023" /> -<TGConnectingPoint num="1" id="2024" /> -<TGConnectingPoint num="2" id="2025" /> -<TGConnectingPoint num="3" id="2026" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2036" > -<cdparam x="148" y="549" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to stop state" value="null" /> -<TGConnectingPoint num="0" id="2035" /> -<P1 x="117" y="553" id="2094" /> -<P2 x="255" y="748" id="2333" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2034" > -<father id="2036" num="0" /> -<cdparam x="32" y="587" /> -<sizeparam width="284" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2030" /> -<TGConnectingPoint num="1" id="2031" /> -<TGConnectingPoint num="2" id="2032" /> -<TGConnectingPoint num="3" id="2033" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="coffeeMinDelay" /> -<computeMax value="coffeeMaxDelay" /> -<actions value="nbOfCoins = 0" /> -<actions value="beverageReady()" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2043" > -<cdparam x="229" y="465" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2042" /> -<P1 x="218" y="476" id="2140" /> -<P2 x="117" y="523" id="2093" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2041" > -<father id="2043" num="0" /> -<cdparam x="229" y="505" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2037" /> -<TGConnectingPoint num="1" id="2038" /> -<TGConnectingPoint num="2" id="2039" /> -<TGConnectingPoint num="3" id="2040" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2050" > -<cdparam x="667" y="346" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="2049" /> -<P1 x="699" y="346" id="2179" /> -<P2 x="699" y="381" id="2367" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2048" > -<father id="2050" num="0" /> -<cdparam x="707" y="368" /> -<sizeparam width="89" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2044" /> -<TGConnectingPoint num="1" id="2045" /> -<TGConnectingPoint num="2" id="2046" /> -<TGConnectingPoint num="3" id="2047" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<actions value="nbOfCoins = 0" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2057" > -<cdparam x="348" y="228" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2056" /> -<P1 x="388" y="208" id="2245" /> -<P2 x="649" y="264" id="2203" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2055" > -<father id="2057" num="0" /> -<cdparam x="411" y="206" /> -<sizeparam width="104" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2051" /> -<TGConnectingPoint num="1" id="2052" /> -<TGConnectingPoint num="2" id="2053" /> -<TGConnectingPoint num="3" id="2054" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="coinDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2064" > -<cdparam x="243" y="319" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="2063" /> -<P1 x="277" y="305" id="2190" /> -<P2 x="251" y="436" id="2127" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2062" > -<father id="2064" num="0" /> -<cdparam x="243" y="359" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2058" /> -<TGConnectingPoint num="1" id="2059" /> -<TGConnectingPoint num="2" id="2060" /> -<TGConnectingPoint num="3" id="2061" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2071" > -<cdparam x="270" y="224" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2070" /> -<P1 x="270" y="228" id="2255" /> -<P2 x="277" y="275" id="2189" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2069" > -<father id="2071" num="0" /> -<cdparam x="270" y="264" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2065" /> -<TGConnectingPoint num="1" id="2066" /> -<TGConnectingPoint num="2" id="2067" /> -<TGConnectingPoint num="3" id="2068" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2078" > -<cdparam x="309" y="160" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="2077" /> -<P1 x="306" y="166" id="2168" /> -<P2 x="309" y="188" id="2242" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2076" > -<father id="2078" num="0" /> -<cdparam x="328" y="178" /> -<sizeparam width="168" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2072" /> -<TGConnectingPoint num="1" id="2073" /> -<TGConnectingPoint num="2" id="2074" /> -<TGConnectingPoint num="3" id="2075" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -<actions value="nbOfCoins = nbOfCoins + x" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2085" > -<cdparam x="303" y="103" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2084" /> -<P1 x="303" y="103" id="2290" /> -<P2 x="306" y="136" id="2167" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2083" > -<father id="2085" num="0" /> -<cdparam x="303" y="143" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2079" /> -<TGConnectingPoint num="1" id="2080" /> -<TGConnectingPoint num="2" id="2081" /> -<TGConnectingPoint num="3" id="2082" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2092" > -<cdparam x="303" y="40" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="2091" /> -<P1 x="303" y="40" id="2282" /> -<P2 x="303" y="63" id="2285" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2090" > -<father id="2092" num="0" /> -<cdparam x="303" y="80" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2086" /> -<TGConnectingPoint num="1" id="2087" /> -<TGConnectingPoint num="2" id="2088" /> -<TGConnectingPoint num="3" id="2089" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<COMPONENT type="5104" id="2103" > -<cdparam x="47" y="528" /> -<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="Send signal" value="pushCoffeeButton()" /> -<TGConnectingPoint num="0" id="2093" /> -<TGConnectingPoint num="1" id="2094" /> -<TGConnectingPoint num="2" id="2095" /> -<TGConnectingPoint num="3" id="2096" /> -<TGConnectingPoint num="4" id="2097" /> -<TGConnectingPoint num="5" id="2098" /> -<TGConnectingPoint num="6" id="2099" /> -<TGConnectingPoint num="7" id="2100" /> -<TGConnectingPoint num="8" id="2101" /> -<TGConnectingPoint num="9" id="2102" /> -<accessibility /> -</COMPONENT> - -<COMPONENT type="5103" id="2114" > -<cdparam x="363" y="501" /> -<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> -<TGConnectingPoint num="0" id="2104" /> -<TGConnectingPoint num="1" id="2105" /> -<TGConnectingPoint num="2" id="2106" /> -<TGConnectingPoint num="3" id="2107" /> -<TGConnectingPoint num="4" id="2108" /> -<TGConnectingPoint num="5" id="2109" /> -<TGConnectingPoint num="6" id="2110" /> -<TGConnectingPoint num="7" id="2111" /> -<TGConnectingPoint num="8" id="2112" /> -<TGConnectingPoint num="9" id="2113" /> -<accessibility /> -</COMPONENT> - -<COMPONENT type="5104" id="2125" > -<cdparam x="227" y="528" /> -<sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="Send signal" value="pushTeaButton()" /> -<TGConnectingPoint num="0" id="2115" /> -<TGConnectingPoint num="1" id="2116" /> -<TGConnectingPoint num="2" id="2117" /> -<TGConnectingPoint num="3" id="2118" /> -<TGConnectingPoint num="4" id="2119" /> -<TGConnectingPoint num="5" id="2120" /> -<TGConnectingPoint num="6" id="2121" /> -<TGConnectingPoint num="7" id="2122" /> -<TGConnectingPoint num="8" id="2123" /> -<TGConnectingPoint num="9" id="2124" /> -<accessibility /> -</COMPONENT> - -<COMPONENT type="5106" id="2166" > -<cdparam x="185" y="436" /> -<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="state0" value="WaitingForSelection" /> -<TGConnectingPoint num="0" id="2126" /> -<TGConnectingPoint num="1" id="2127" /> -<TGConnectingPoint num="2" id="2128" /> -<TGConnectingPoint num="3" id="2129" /> -<TGConnectingPoint num="4" id="2130" /> -<TGConnectingPoint num="5" id="2131" /> -<TGConnectingPoint num="6" id="2132" /> -<TGConnectingPoint num="7" id="2133" /> -<TGConnectingPoint num="8" id="2134" /> -<TGConnectingPoint num="9" id="2135" /> -<TGConnectingPoint num="10" id="2136" /> -<TGConnectingPoint num="11" id="2137" /> -<TGConnectingPoint num="12" id="2138" /> -<TGConnectingPoint num="13" id="2139" /> -<TGConnectingPoint num="14" id="2140" /> -<TGConnectingPoint num="15" id="2141" /> -<TGConnectingPoint num="16" id="2142" /> -<TGConnectingPoint num="17" id="2143" /> -<TGConnectingPoint num="18" id="2144" /> -<TGConnectingPoint num="19" id="2145" /> -<TGConnectingPoint num="20" id="2146" /> -<TGConnectingPoint num="21" id="2147" /> -<TGConnectingPoint num="22" id="2148" /> -<TGConnectingPoint num="23" id="2149" /> -<TGConnectingPoint num="24" id="2150" /> -<TGConnectingPoint num="25" id="2151" /> -<TGConnectingPoint num="26" id="2152" /> -<TGConnectingPoint num="27" id="2153" /> -<TGConnectingPoint num="28" id="2154" /> -<TGConnectingPoint num="29" id="2155" /> -<TGConnectingPoint num="30" id="2156" /> -<TGConnectingPoint num="31" id="2157" /> -<TGConnectingPoint num="32" id="2158" /> -<TGConnectingPoint num="33" id="2159" /> -<TGConnectingPoint num="34" id="2160" /> -<TGConnectingPoint num="35" id="2161" /> -<TGConnectingPoint num="36" id="2162" /> -<TGConnectingPoint num="37" id="2163" /> -<TGConnectingPoint num="38" id="2164" /> -<TGConnectingPoint num="39" id="2165" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5104" id="2177" > -<cdparam x="265" y="141" /> -<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="Receive signal" value="getCoin(x)" /> -<TGConnectingPoint num="0" id="2167" /> -<TGConnectingPoint num="1" id="2168" /> -<TGConnectingPoint num="2" id="2169" /> -<TGConnectingPoint num="3" id="2170" /> -<TGConnectingPoint num="4" id="2171" /> -<TGConnectingPoint num="5" id="2172" /> -<TGConnectingPoint num="6" id="2173" /> -<TGConnectingPoint num="7" id="2174" /> -<TGConnectingPoint num="8" id="2175" /> -<TGConnectingPoint num="9" id="2176" /> -</COMPONENT> - -<COMPONENT type="5103" id="2188" > -<cdparam x="629" y="321" /> -<sizeparam width="141" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" /> -<TGConnectingPoint num="0" id="2178" /> -<TGConnectingPoint num="1" id="2179" /> -<TGConnectingPoint num="2" id="2180" /> -<TGConnectingPoint num="3" id="2181" /> -<TGConnectingPoint num="4" id="2182" /> -<TGConnectingPoint num="5" id="2183" /> -<TGConnectingPoint num="6" id="2184" /> -<TGConnectingPoint num="7" id="2185" /> -<TGConnectingPoint num="8" id="2186" /> -<TGConnectingPoint num="9" id="2187" /> -</COMPONENT> - -<COMPONENT type="5104" id="2199" > -<cdparam x="236" y="280" /> -<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="Receive signal" value="getCoin(x)" /> -<TGConnectingPoint num="0" id="2189" /> -<TGConnectingPoint num="1" id="2190" /> -<TGConnectingPoint num="2" id="2191" /> -<TGConnectingPoint num="3" id="2192" /> -<TGConnectingPoint num="4" id="2193" /> -<TGConnectingPoint num="5" id="2194" /> -<TGConnectingPoint num="6" id="2195" /> -<TGConnectingPoint num="7" id="2196" /> -<TGConnectingPoint num="8" id="2197" /> -<TGConnectingPoint num="9" id="2198" /> -<accessibility /> -</COMPONENT> - -<COMPONENT type="5106" id="2240" > -<cdparam x="649" y="239" /> -<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="state0" value="ejectState" /> -<TGConnectingPoint num="0" id="2200" /> -<TGConnectingPoint num="1" id="2201" /> -<TGConnectingPoint num="2" id="2202" /> -<TGConnectingPoint num="3" id="2203" /> -<TGConnectingPoint num="4" id="2204" /> -<TGConnectingPoint num="5" id="2205" /> -<TGConnectingPoint num="6" id="2206" /> -<TGConnectingPoint num="7" id="2207" /> -<TGConnectingPoint num="8" id="2208" /> -<TGConnectingPoint num="9" id="2209" /> -<TGConnectingPoint num="10" id="2210" /> -<TGConnectingPoint num="11" id="2211" /> -<TGConnectingPoint num="12" id="2212" /> -<TGConnectingPoint num="13" id="2213" /> -<TGConnectingPoint num="14" id="2214" /> -<TGConnectingPoint num="15" id="2215" /> -<TGConnectingPoint num="16" id="2216" /> -<TGConnectingPoint num="17" id="2217" /> -<TGConnectingPoint num="18" id="2218" /> -<TGConnectingPoint num="19" id="2219" /> -<TGConnectingPoint num="20" id="2220" /> -<TGConnectingPoint num="21" id="2221" /> -<TGConnectingPoint num="22" id="2222" /> -<TGConnectingPoint num="23" id="2223" /> -<TGConnectingPoint num="24" id="2224" /> -<TGConnectingPoint num="25" id="2225" /> -<TGConnectingPoint num="26" id="2226" /> -<TGConnectingPoint num="27" id="2227" /> -<TGConnectingPoint num="28" id="2228" /> -<TGConnectingPoint num="29" id="2229" /> -<TGConnectingPoint num="30" id="2230" /> -<TGConnectingPoint num="31" id="2231" /> -<TGConnectingPoint num="32" id="2232" /> -<TGConnectingPoint num="33" id="2233" /> -<TGConnectingPoint num="34" id="2234" /> -<TGConnectingPoint num="35" id="2235" /> -<TGConnectingPoint num="36" id="2236" /> -<TGConnectingPoint num="37" id="2237" /> -<TGConnectingPoint num="38" id="2238" /> -<TGConnectingPoint num="39" id="2239" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="2281" > -<cdparam x="231" y="188" /> -<sizeparam width="157" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="state0" value="WaitingForSecondCoin" /> -<TGConnectingPoint num="0" id="2241" /> -<TGConnectingPoint num="1" id="2242" /> -<TGConnectingPoint num="2" id="2243" /> -<TGConnectingPoint num="3" id="2244" /> -<TGConnectingPoint num="4" id="2245" /> -<TGConnectingPoint num="5" id="2246" /> -<TGConnectingPoint num="6" id="2247" /> -<TGConnectingPoint num="7" id="2248" /> -<TGConnectingPoint num="8" id="2249" /> -<TGConnectingPoint num="9" id="2250" /> -<TGConnectingPoint num="10" id="2251" /> -<TGConnectingPoint num="11" id="2252" /> -<TGConnectingPoint num="12" id="2253" /> -<TGConnectingPoint num="13" id="2254" /> -<TGConnectingPoint num="14" id="2255" /> -<TGConnectingPoint num="15" id="2256" /> -<TGConnectingPoint num="16" id="2257" /> -<TGConnectingPoint num="17" id="2258" /> -<TGConnectingPoint num="18" id="2259" /> -<TGConnectingPoint num="19" id="2260" /> -<TGConnectingPoint num="20" id="2261" /> -<TGConnectingPoint num="21" id="2262" /> -<TGConnectingPoint num="22" id="2263" /> -<TGConnectingPoint num="23" id="2264" /> -<TGConnectingPoint num="24" id="2265" /> -<TGConnectingPoint num="25" id="2266" /> -<TGConnectingPoint num="26" id="2267" /> -<TGConnectingPoint num="27" id="2268" /> -<TGConnectingPoint num="28" id="2269" /> -<TGConnectingPoint num="29" id="2270" /> -<TGConnectingPoint num="30" id="2271" /> -<TGConnectingPoint num="31" id="2272" /> -<TGConnectingPoint num="32" id="2273" /> -<TGConnectingPoint num="33" id="2274" /> -<TGConnectingPoint num="34" id="2275" /> -<TGConnectingPoint num="35" id="2276" /> -<TGConnectingPoint num="36" id="2277" /> -<TGConnectingPoint num="37" id="2278" /> -<TGConnectingPoint num="38" id="2279" /> -<TGConnectingPoint num="39" id="2280" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="2283" > -<cdparam x="296" y="20" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="2282" /> -</COMPONENT> - -<COMPONENT type="5106" id="2324" > -<cdparam x="235" y="63" /> -<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="state0" value="WaitingForFirstCoin" /> -<TGConnectingPoint num="0" id="2284" /> -<TGConnectingPoint num="1" id="2285" /> -<TGConnectingPoint num="2" id="2286" /> -<TGConnectingPoint num="3" id="2287" /> -<TGConnectingPoint num="4" id="2288" /> -<TGConnectingPoint num="5" id="2289" /> -<TGConnectingPoint num="6" id="2290" /> -<TGConnectingPoint num="7" id="2291" /> -<TGConnectingPoint num="8" id="2292" /> -<TGConnectingPoint num="9" id="2293" /> -<TGConnectingPoint num="10" id="2294" /> -<TGConnectingPoint num="11" id="2295" /> -<TGConnectingPoint num="12" id="2296" /> -<TGConnectingPoint num="13" id="2297" /> -<TGConnectingPoint num="14" id="2298" /> -<TGConnectingPoint num="15" id="2299" /> -<TGConnectingPoint num="16" id="2300" /> -<TGConnectingPoint num="17" id="2301" /> -<TGConnectingPoint num="18" id="2302" /> -<TGConnectingPoint num="19" id="2303" /> -<TGConnectingPoint num="20" id="2304" /> -<TGConnectingPoint num="21" id="2305" /> -<TGConnectingPoint num="22" id="2306" /> -<TGConnectingPoint num="23" id="2307" /> -<TGConnectingPoint num="24" id="2308" /> -<TGConnectingPoint num="25" id="2309" /> -<TGConnectingPoint num="26" id="2310" /> -<TGConnectingPoint num="27" id="2311" /> -<TGConnectingPoint num="28" id="2312" /> -<TGConnectingPoint num="29" id="2313" /> -<TGConnectingPoint num="30" id="2314" /> -<TGConnectingPoint num="31" id="2315" /> -<TGConnectingPoint num="32" id="2316" /> -<TGConnectingPoint num="33" id="2317" /> -<TGConnectingPoint num="34" id="2318" /> -<TGConnectingPoint num="35" id="2319" /> -<TGConnectingPoint num="36" id="2320" /> -<TGConnectingPoint num="37" id="2321" /> -<TGConnectingPoint num="38" id="2322" /> -<TGConnectingPoint num="39" id="2323" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="2365" > -<cdparam x="221" y="748" /> -<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="state0" value="WaitingForFirstCoin" /> -<TGConnectingPoint num="0" id="2325" /> -<TGConnectingPoint num="1" id="2326" /> -<TGConnectingPoint num="2" id="2327" /> -<TGConnectingPoint num="3" id="2328" /> -<TGConnectingPoint num="4" id="2329" /> -<TGConnectingPoint num="5" id="2330" /> -<TGConnectingPoint num="6" id="2331" /> -<TGConnectingPoint num="7" id="2332" /> -<TGConnectingPoint num="8" id="2333" /> -<TGConnectingPoint num="9" id="2334" /> -<TGConnectingPoint num="10" id="2335" /> -<TGConnectingPoint num="11" id="2336" /> -<TGConnectingPoint num="12" id="2337" /> -<TGConnectingPoint num="13" id="2338" /> -<TGConnectingPoint num="14" id="2339" /> -<TGConnectingPoint num="15" id="2340" /> -<TGConnectingPoint num="16" id="2341" /> -<TGConnectingPoint num="17" id="2342" /> -<TGConnectingPoint num="18" id="2343" /> -<TGConnectingPoint num="19" id="2344" /> -<TGConnectingPoint num="20" id="2345" /> -<TGConnectingPoint num="21" id="2346" /> -<TGConnectingPoint num="22" id="2347" /> -<TGConnectingPoint num="23" id="2348" /> -<TGConnectingPoint num="24" id="2349" /> -<TGConnectingPoint num="25" id="2350" /> -<TGConnectingPoint num="26" id="2351" /> -<TGConnectingPoint num="27" id="2352" /> -<TGConnectingPoint num="28" id="2353" /> -<TGConnectingPoint num="29" id="2354" /> -<TGConnectingPoint num="30" id="2355" /> -<TGConnectingPoint num="31" id="2356" /> -<TGConnectingPoint num="32" id="2357" /> -<TGConnectingPoint num="33" id="2358" /> -<TGConnectingPoint num="34" id="2359" /> -<TGConnectingPoint num="35" id="2360" /> -<TGConnectingPoint num="36" id="2361" /> -<TGConnectingPoint num="37" id="2362" /> -<TGConnectingPoint num="38" id="2363" /> -<TGConnectingPoint num="39" id="2364" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="2406" > -<cdparam x="631" y="381" /> -<sizeparam width="137" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="1400" /> -<infoparam name="state0" value="WaitingForFirstCoin" /> -<TGConnectingPoint num="0" id="2366" /> -<TGConnectingPoint num="1" id="2367" /> -<TGConnectingPoint num="2" id="2368" /> -<TGConnectingPoint num="3" id="2369" /> -<TGConnectingPoint num="4" id="2370" /> -<TGConnectingPoint num="5" id="2371" /> -<TGConnectingPoint num="6" id="2372" /> -<TGConnectingPoint num="7" id="2373" /> -<TGConnectingPoint num="8" id="2374" /> -<TGConnectingPoint num="9" id="2375" /> -<TGConnectingPoint num="10" id="2376" /> -<TGConnectingPoint num="11" id="2377" /> -<TGConnectingPoint num="12" id="2378" /> -<TGConnectingPoint num="13" id="2379" /> -<TGConnectingPoint num="14" id="2380" /> -<TGConnectingPoint num="15" id="2381" /> -<TGConnectingPoint num="16" id="2382" /> -<TGConnectingPoint num="17" id="2383" /> -<TGConnectingPoint num="18" id="2384" /> -<TGConnectingPoint num="19" id="2385" /> -<TGConnectingPoint num="20" id="2386" /> -<TGConnectingPoint num="21" id="2387" /> -<TGConnectingPoint num="22" id="2388" /> -<TGConnectingPoint num="23" id="2389" /> -<TGConnectingPoint num="24" id="2390" /> -<TGConnectingPoint num="25" id="2391" /> -<TGConnectingPoint num="26" id="2392" /> -<TGConnectingPoint num="27" id="2393" /> -<TGConnectingPoint num="28" id="2394" /> -<TGConnectingPoint num="29" id="2395" /> -<TGConnectingPoint num="30" id="2396" /> -<TGConnectingPoint num="31" id="2397" /> -<TGConnectingPoint num="32" id="2398" /> -<TGConnectingPoint num="33" id="2399" /> -<TGConnectingPoint num="34" id="2400" /> -<TGConnectingPoint num="35" id="2401" /> -<TGConnectingPoint num="36" id="2402" /> -<TGConnectingPoint num="37" id="2403" /> -<TGConnectingPoint num="38" id="2404" /> -<TGConnectingPoint num="39" id="2405" /> -<extraparam> -</extraparam> -</COMPONENT> - - -</AVATARStateMachineDiagramPanel> - -<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="2413" > -<cdparam x="363" y="193" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="2412" /> -<P1 x="363" y="204" id="2429" /> -<P2 x="362" y="257" id="2440" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2411" > -<father id="2413" num="0" /> -<cdparam x="380" y="228" /> -<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2407" /> -<TGConnectingPoint num="1" id="2408" /> -<TGConnectingPoint num="2" id="2409" /> -<TGConnectingPoint num="3" id="2410" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2420" > -<cdparam x="363" y="150" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from state0 to Send signal" value="null" /> -<TGConnectingPoint num="0" id="2419" /> -<P1 x="363" y="150" id="2486" /> -<P2 x="363" y="174" id="2428" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2418" > -<father id="2420" num="0" /> -<cdparam x="363" y="190" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2414" /> -<TGConnectingPoint num="1" id="2415" /> -<TGConnectingPoint num="2" id="2416" /> -<TGConnectingPoint num="3" id="2417" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2427" > -<cdparam x="362" y="101" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="2426" /> -<P1 x="362" y="101" id="2521" /> -<P2 x="363" y="120" id="2481" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2425" > -<father id="2427" num="0" /> -<cdparam x="362" y="141" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<COMPONENT type="5106" id="1689" > +<cdparam x="264" y="174" /> +<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2421" /> -<TGConnectingPoint num="1" id="2422" /> -<TGConnectingPoint num="2" id="2423" /> -<TGConnectingPoint num="3" id="2424" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<COMPONENT type="5103" id="2438" > -<cdparam x="338" y="179" /> -<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="state0" value="state0" /> +<TGConnectingPoint num="0" id="1649" /> +<TGConnectingPoint num="1" id="1650" /> +<TGConnectingPoint num="2" id="1651" /> +<TGConnectingPoint num="3" id="1652" /> +<TGConnectingPoint num="4" id="1653" /> +<TGConnectingPoint num="5" id="1654" /> +<TGConnectingPoint num="6" id="1655" /> +<TGConnectingPoint num="7" id="1656" /> +<TGConnectingPoint num="8" id="1657" /> +<TGConnectingPoint num="9" id="1658" /> +<TGConnectingPoint num="10" id="1659" /> +<TGConnectingPoint num="11" id="1660" /> +<TGConnectingPoint num="12" id="1661" /> +<TGConnectingPoint num="13" id="1662" /> +<TGConnectingPoint num="14" id="1663" /> +<TGConnectingPoint num="15" id="1664" /> +<TGConnectingPoint num="16" id="1665" /> +<TGConnectingPoint num="17" id="1666" /> +<TGConnectingPoint num="18" id="1667" /> +<TGConnectingPoint num="19" id="1668" /> +<TGConnectingPoint num="20" id="1669" /> +<TGConnectingPoint num="21" id="1670" /> +<TGConnectingPoint num="22" id="1671" /> +<TGConnectingPoint num="23" id="1672" /> +<TGConnectingPoint num="24" id="1673" /> +<TGConnectingPoint num="25" id="1674" /> +<TGConnectingPoint num="26" id="1675" /> +<TGConnectingPoint num="27" id="1676" /> +<TGConnectingPoint num="28" id="1677" /> +<TGConnectingPoint num="29" id="1678" /> +<TGConnectingPoint num="30" id="1679" /> +<TGConnectingPoint num="31" id="1680" /> +<TGConnectingPoint num="32" id="1681" /> +<TGConnectingPoint num="33" id="1682" /> +<TGConnectingPoint num="34" id="1683" /> +<TGConnectingPoint num="35" id="1684" /> +<TGConnectingPoint num="36" id="1685" /> +<TGConnectingPoint num="37" id="1686" /> +<TGConnectingPoint num="38" id="1687" /> +<TGConnectingPoint num="39" id="1688" /> +<extraparam> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5103" id="1646" > +<father id="1689" num="0" /> +<cdparam x="330" y="257" /> +<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" /> <infoparam name="Send signal" value="push()" /> -<TGConnectingPoint num="0" id="2428" /> -<TGConnectingPoint num="1" id="2429" /> -<TGConnectingPoint num="2" id="2430" /> -<TGConnectingPoint num="3" id="2431" /> -<TGConnectingPoint num="4" id="2432" /> -<TGConnectingPoint num="5" id="2433" /> -<TGConnectingPoint num="6" id="2434" /> -<TGConnectingPoint num="7" id="2435" /> -<TGConnectingPoint num="8" id="2436" /> -<TGConnectingPoint num="9" id="2437" /> -</COMPONENT> - -<COMPONENT type="5106" id="2479" > -<cdparam x="337" y="257" /> -<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="2439" /> -<TGConnectingPoint num="1" id="2440" /> -<TGConnectingPoint num="2" id="2441" /> -<TGConnectingPoint num="3" id="2442" /> -<TGConnectingPoint num="4" id="2443" /> -<TGConnectingPoint num="5" id="2444" /> -<TGConnectingPoint num="6" id="2445" /> -<TGConnectingPoint num="7" id="2446" /> -<TGConnectingPoint num="8" id="2447" /> -<TGConnectingPoint num="9" id="2448" /> -<TGConnectingPoint num="10" id="2449" /> -<TGConnectingPoint num="11" id="2450" /> -<TGConnectingPoint num="12" id="2451" /> -<TGConnectingPoint num="13" id="2452" /> -<TGConnectingPoint num="14" id="2453" /> -<TGConnectingPoint num="15" id="2454" /> -<TGConnectingPoint num="16" id="2455" /> -<TGConnectingPoint num="17" id="2456" /> -<TGConnectingPoint num="18" id="2457" /> -<TGConnectingPoint num="19" id="2458" /> -<TGConnectingPoint num="20" id="2459" /> -<TGConnectingPoint num="21" id="2460" /> -<TGConnectingPoint num="22" id="2461" /> -<TGConnectingPoint num="23" id="2462" /> -<TGConnectingPoint num="24" id="2463" /> -<TGConnectingPoint num="25" id="2464" /> -<TGConnectingPoint num="26" id="2465" /> -<TGConnectingPoint num="27" id="2466" /> -<TGConnectingPoint num="28" id="2467" /> -<TGConnectingPoint num="29" id="2468" /> -<TGConnectingPoint num="30" id="2469" /> -<TGConnectingPoint num="31" id="2470" /> -<TGConnectingPoint num="32" id="2471" /> -<TGConnectingPoint num="33" id="2472" /> -<TGConnectingPoint num="34" id="2473" /> -<TGConnectingPoint num="35" id="2474" /> -<TGConnectingPoint num="36" id="2475" /> -<TGConnectingPoint num="37" id="2476" /> -<TGConnectingPoint num="38" id="2477" /> -<TGConnectingPoint num="39" id="2478" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="2520" > -<cdparam x="338" y="120" /> -<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="2480" /> -<TGConnectingPoint num="1" id="2481" /> -<TGConnectingPoint num="2" id="2482" /> -<TGConnectingPoint num="3" id="2483" /> -<TGConnectingPoint num="4" id="2484" /> -<TGConnectingPoint num="5" id="2485" /> -<TGConnectingPoint num="6" id="2486" /> -<TGConnectingPoint num="7" id="2487" /> -<TGConnectingPoint num="8" id="2488" /> -<TGConnectingPoint num="9" id="2489" /> -<TGConnectingPoint num="10" id="2490" /> -<TGConnectingPoint num="11" id="2491" /> -<TGConnectingPoint num="12" id="2492" /> -<TGConnectingPoint num="13" id="2493" /> -<TGConnectingPoint num="14" id="2494" /> -<TGConnectingPoint num="15" id="2495" /> -<TGConnectingPoint num="16" id="2496" /> -<TGConnectingPoint num="17" id="2497" /> -<TGConnectingPoint num="18" id="2498" /> -<TGConnectingPoint num="19" id="2499" /> -<TGConnectingPoint num="20" id="2500" /> -<TGConnectingPoint num="21" id="2501" /> -<TGConnectingPoint num="22" id="2502" /> -<TGConnectingPoint num="23" id="2503" /> -<TGConnectingPoint num="24" id="2504" /> -<TGConnectingPoint num="25" id="2505" /> -<TGConnectingPoint num="26" id="2506" /> -<TGConnectingPoint num="27" id="2507" /> -<TGConnectingPoint num="28" id="2508" /> -<TGConnectingPoint num="29" id="2509" /> -<TGConnectingPoint num="30" id="2510" /> -<TGConnectingPoint num="31" id="2511" /> -<TGConnectingPoint num="32" id="2512" /> -<TGConnectingPoint num="33" id="2513" /> -<TGConnectingPoint num="34" id="2514" /> -<TGConnectingPoint num="35" id="2515" /> -<TGConnectingPoint num="36" id="2516" /> -<TGConnectingPoint num="37" id="2517" /> -<TGConnectingPoint num="38" id="2518" /> -<TGConnectingPoint num="39" id="2519" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="2522" > -<cdparam x="355" y="81" /> +<TGConnectingPoint num="0" id="1636" /> +<TGConnectingPoint num="1" id="1637" /> +<TGConnectingPoint num="2" id="1638" /> +<TGConnectingPoint num="3" id="1639" /> +<TGConnectingPoint num="4" id="1640" /> +<TGConnectingPoint num="5" id="1641" /> +<TGConnectingPoint num="6" id="1642" /> +<TGConnectingPoint num="7" id="1643" /> +<TGConnectingPoint num="8" id="1644" /> +<TGConnectingPoint num="9" id="1645" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="5100" id="1648" > +<father id="1689" num="1" /> +<cdparam x="333" y="213" /> <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> <hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> +<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" /> <infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="2521" /> -</COMPONENT> - - -</AVATARStateMachineDiagramPanel> - -<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" > -<CONNECTOR type="5102" id="2529" > -<cdparam x="323" y="118" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector" value="null" /> -<TGConnectingPoint num="0" id="2528" /> -<P1 x="323" y="118" id="2602" /> -<P2 x="341" y="200" id="2544" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2527" > -<father id="2529" num="0" /> -<cdparam x="323" y="158" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2523" /> -<TGConnectingPoint num="1" id="2524" /> -<TGConnectingPoint num="2" id="2525" /> -<TGConnectingPoint num="3" id="2526" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2536" > -<cdparam x="322" y="69" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from start state to state0" value="null" /> -<TGConnectingPoint num="0" id="2535" /> -<P1 x="322" y="69" id="2637" /> -<P2 x="323" y="88" id="2597" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2534" > -<father id="2536" num="0" /> -<cdparam x="322" y="109" /> -<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2530" /> -<TGConnectingPoint num="1" id="2531" /> -<TGConnectingPoint num="2" id="2532" /> -<TGConnectingPoint num="3" id="2533" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> -</SUBCOMPONENT> - -<CONNECTOR type="5102" id="2543" > -<cdparam x="365" y="135" /> -<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<infoparam name="connector from Send signal to state0" value="null" /> -<TGConnectingPoint num="0" id="2542" /> -<P1 x="341" y="230" id="2545" /> -<P2 x="387" y="300" id="2556" /> -<AutomaticDrawing data="true" /> -</CONNECTOR><SUBCOMPONENT type="-1" id="2541" > -<father id="2543" num="0" /> -<cdparam x="405" y="283" /> -<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> -<TGConnectingPoint num="0" id="2537" /> -<TGConnectingPoint num="1" id="2538" /> -<TGConnectingPoint num="2" id="2539" /> -<TGConnectingPoint num="3" id="2540" /> -<extraparam> -<guard value="[ ]" /> -<afterMin value="mechanicalDelay" /> -<afterMax value="" /> -<computeMin value="" /> -<computeMax value="" /> -</extraparam> +<TGConnectingPoint num="0" id="1647" /> </SUBCOMPONENT> -<COMPONENT type="5103" id="2554" > -<cdparam x="316" y="205" /> -<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="Send signal" value="push()" /> -<TGConnectingPoint num="0" id="2544" /> -<TGConnectingPoint num="1" id="2545" /> -<TGConnectingPoint num="2" id="2546" /> -<TGConnectingPoint num="3" id="2547" /> -<TGConnectingPoint num="4" id="2548" /> -<TGConnectingPoint num="5" id="2549" /> -<TGConnectingPoint num="6" id="2550" /> -<TGConnectingPoint num="7" id="2551" /> -<TGConnectingPoint num="8" id="2552" /> -<TGConnectingPoint num="9" id="2553" /> -</COMPONENT> - -<COMPONENT type="5106" id="2595" > -<cdparam x="362" y="300" /> -<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="2555" /> -<TGConnectingPoint num="1" id="2556" /> -<TGConnectingPoint num="2" id="2557" /> -<TGConnectingPoint num="3" id="2558" /> -<TGConnectingPoint num="4" id="2559" /> -<TGConnectingPoint num="5" id="2560" /> -<TGConnectingPoint num="6" id="2561" /> -<TGConnectingPoint num="7" id="2562" /> -<TGConnectingPoint num="8" id="2563" /> -<TGConnectingPoint num="9" id="2564" /> -<TGConnectingPoint num="10" id="2565" /> -<TGConnectingPoint num="11" id="2566" /> -<TGConnectingPoint num="12" id="2567" /> -<TGConnectingPoint num="13" id="2568" /> -<TGConnectingPoint num="14" id="2569" /> -<TGConnectingPoint num="15" id="2570" /> -<TGConnectingPoint num="16" id="2571" /> -<TGConnectingPoint num="17" id="2572" /> -<TGConnectingPoint num="18" id="2573" /> -<TGConnectingPoint num="19" id="2574" /> -<TGConnectingPoint num="20" id="2575" /> -<TGConnectingPoint num="21" id="2576" /> -<TGConnectingPoint num="22" id="2577" /> -<TGConnectingPoint num="23" id="2578" /> -<TGConnectingPoint num="24" id="2579" /> -<TGConnectingPoint num="25" id="2580" /> -<TGConnectingPoint num="26" id="2581" /> -<TGConnectingPoint num="27" id="2582" /> -<TGConnectingPoint num="28" id="2583" /> -<TGConnectingPoint num="29" id="2584" /> -<TGConnectingPoint num="30" id="2585" /> -<TGConnectingPoint num="31" id="2586" /> -<TGConnectingPoint num="32" id="2587" /> -<TGConnectingPoint num="33" id="2588" /> -<TGConnectingPoint num="34" id="2589" /> -<TGConnectingPoint num="35" id="2590" /> -<TGConnectingPoint num="36" id="2591" /> -<TGConnectingPoint num="37" id="2592" /> -<TGConnectingPoint num="38" id="2593" /> -<TGConnectingPoint num="39" id="2594" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5106" id="2636" > -<cdparam x="298" y="88" /> -<sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="state0" value="main" /> -<TGConnectingPoint num="0" id="2596" /> -<TGConnectingPoint num="1" id="2597" /> -<TGConnectingPoint num="2" id="2598" /> -<TGConnectingPoint num="3" id="2599" /> -<TGConnectingPoint num="4" id="2600" /> -<TGConnectingPoint num="5" id="2601" /> -<TGConnectingPoint num="6" id="2602" /> -<TGConnectingPoint num="7" id="2603" /> -<TGConnectingPoint num="8" id="2604" /> -<TGConnectingPoint num="9" id="2605" /> -<TGConnectingPoint num="10" id="2606" /> -<TGConnectingPoint num="11" id="2607" /> -<TGConnectingPoint num="12" id="2608" /> -<TGConnectingPoint num="13" id="2609" /> -<TGConnectingPoint num="14" id="2610" /> -<TGConnectingPoint num="15" id="2611" /> -<TGConnectingPoint num="16" id="2612" /> -<TGConnectingPoint num="17" id="2613" /> -<TGConnectingPoint num="18" id="2614" /> -<TGConnectingPoint num="19" id="2615" /> -<TGConnectingPoint num="20" id="2616" /> -<TGConnectingPoint num="21" id="2617" /> -<TGConnectingPoint num="22" id="2618" /> -<TGConnectingPoint num="23" id="2619" /> -<TGConnectingPoint num="24" id="2620" /> -<TGConnectingPoint num="25" id="2621" /> -<TGConnectingPoint num="26" id="2622" /> -<TGConnectingPoint num="27" id="2623" /> -<TGConnectingPoint num="28" id="2624" /> -<TGConnectingPoint num="29" id="2625" /> -<TGConnectingPoint num="30" id="2626" /> -<TGConnectingPoint num="31" id="2627" /> -<TGConnectingPoint num="32" id="2628" /> -<TGConnectingPoint num="33" id="2629" /> -<TGConnectingPoint num="34" id="2630" /> -<TGConnectingPoint num="35" id="2631" /> -<TGConnectingPoint num="36" id="2632" /> -<TGConnectingPoint num="37" id="2633" /> -<TGConnectingPoint num="38" id="2634" /> -<TGConnectingPoint num="39" id="2635" /> -<extraparam> -</extraparam> -</COMPONENT> - -<COMPONENT type="5100" id="2638" > -<cdparam x="315" y="49" /> -<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> -<hidden value="false" /> -<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" /> -<infoparam name="start state" value="null" /> -<TGConnectingPoint num="0" id="2637" /> -</COMPONENT> - </AVATARStateMachineDiagramPanel> diff --git a/modeling/AVATAR/testprobabilities.xml b/modeling/AVATAR/testprobabilities.xml new file mode 100644 index 0000000000000000000000000000000000000000..d10842f1dc7349cf5b23019f39e9a268cf03756b --- /dev/null +++ b/modeling/AVATAR/testprobabilities.xml @@ -0,0 +1,655 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="AVATAR Design" nameTab="Design" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="Reader;Producer;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="2" > +<cdparam x="356" y="236" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="1" /> +<P1 x="356" y="236" id="32" /> +<P2 x="585" y="237" id="6" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in get(int x)" /> +<oso value="out put(int x)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="true" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR> +<COMPONENT type="5000" id="27" > +<cdparam x="585" y="137" /> +<sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block1" value="Reader" /> +<TGConnectingPoint num="0" id="3" /> +<TGConnectingPoint num="1" id="4" /> +<TGConnectingPoint num="2" id="5" /> +<TGConnectingPoint num="3" id="6" /> +<TGConnectingPoint num="4" id="7" /> +<TGConnectingPoint num="5" id="8" /> +<TGConnectingPoint num="6" id="9" /> +<TGConnectingPoint num="7" id="10" /> +<TGConnectingPoint num="8" id="11" /> +<TGConnectingPoint num="9" id="12" /> +<TGConnectingPoint num="10" id="13" /> +<TGConnectingPoint num="11" id="14" /> +<TGConnectingPoint num="12" id="15" /> +<TGConnectingPoint num="13" id="16" /> +<TGConnectingPoint num="14" id="17" /> +<TGConnectingPoint num="15" id="18" /> +<TGConnectingPoint num="16" id="19" /> +<TGConnectingPoint num="17" id="20" /> +<TGConnectingPoint num="18" id="21" /> +<TGConnectingPoint num="19" id="22" /> +<TGConnectingPoint num="20" id="23" /> +<TGConnectingPoint num="21" id="24" /> +<TGConnectingPoint num="22" id="25" /> +<TGConnectingPoint num="23" id="26" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="y" value="" type="8" typeOther="" /> +<Signal value="in get(int x)" attached="true" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="52" > +<cdparam x="106" y="136" /> +<sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block0" value="Producer" /> +<TGConnectingPoint num="0" id="28" /> +<TGConnectingPoint num="1" id="29" /> +<TGConnectingPoint num="2" id="30" /> +<TGConnectingPoint num="3" id="31" /> +<TGConnectingPoint num="4" id="32" /> +<TGConnectingPoint num="5" id="33" /> +<TGConnectingPoint num="6" id="34" /> +<TGConnectingPoint num="7" id="35" /> +<TGConnectingPoint num="8" id="36" /> +<TGConnectingPoint num="9" id="37" /> +<TGConnectingPoint num="10" id="38" /> +<TGConnectingPoint num="11" id="39" /> +<TGConnectingPoint num="12" id="40" /> +<TGConnectingPoint num="13" id="41" /> +<TGConnectingPoint num="14" id="42" /> +<TGConnectingPoint num="15" id="43" /> +<TGConnectingPoint num="16" id="44" /> +<TGConnectingPoint num="17" id="45" /> +<TGConnectingPoint num="18" id="46" /> +<TGConnectingPoint num="19" id="47" /> +<TGConnectingPoint num="20" id="48" /> +<TGConnectingPoint num="21" id="49" /> +<TGConnectingPoint num="22" id="50" /> +<TGConnectingPoint num="23" id="51" /> +<extraparam> +<CryptoBlock value="false" /> +<Attribute access="0" id="y" value="" type="8" typeOther="" /> +<Signal value="out put(int x)" attached="true" /> +</extraparam> +</COMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Reader" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="67" > +<cdparam x="412" y="349" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="62" /> +<TGConnectingPoint num="1" id="63" /> +<TGConnectingPoint num="2" id="64" /> +<TGConnectingPoint num="3" id="65" /> +<TGConnectingPoint num="4" id="66" /> +<P1 x="412" y="349" id="83" /> +<P2 x="436" y="230" id="97" /> +<Point x="412" y="369" /> +<Point x="502" y="369" /> +<Point x="502" y="210" /> +<Point x="456" y="210" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="53" > +<father id="67" num="0" /> +<cdparam x="412" y="369" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="54" > +<father id="67" num="1" /> +<cdparam x="502" y="369" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="55" > +<father id="67" num="2" /> +<cdparam x="502" y="210" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="56" > +<father id="67" num="3" /> +<cdparam x="456" y="210" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="61" > +<father id="67" num="4" /> +<cdparam x="436" y="289" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="57" /> +<TGConnectingPoint num="1" id="58" /> +<TGConnectingPoint num="2" id="59" /> +<TGConnectingPoint num="3" id="60" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="74" > +<cdparam x="385" y="168" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="73" /> +<P1 x="361" y="153" id="134" /> +<P2 x="361" y="205" id="101" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="72" > +<father id="74" num="0" /> +<cdparam x="388" y="186" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="68" /> +<TGConnectingPoint num="1" id="69" /> +<TGConnectingPoint num="2" id="70" /> +<TGConnectingPoint num="3" id="71" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="81" > +<cdparam x="403" y="255" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="80" /> +<P1 x="373" y="255" id="122" /> +<P2 x="412" y="319" id="82" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="79" > +<father id="81" num="0" /> +<cdparam x="407" y="287" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="75" /> +<TGConnectingPoint num="1" id="76" /> +<TGConnectingPoint num="2" id="77" /> +<TGConnectingPoint num="3" id="78" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5104" id="92" > +<cdparam x="387" y="324" /> +<sizeparam width="50" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="get(y)" /> +<TGConnectingPoint num="0" id="82" /> +<TGConnectingPoint num="1" id="83" /> +<TGConnectingPoint num="2" id="84" /> +<TGConnectingPoint num="3" id="85" /> +<TGConnectingPoint num="4" id="86" /> +<TGConnectingPoint num="5" id="87" /> +<TGConnectingPoint num="6" id="88" /> +<TGConnectingPoint num="7" id="89" /> +<TGConnectingPoint num="8" id="90" /> +<TGConnectingPoint num="9" id="91" /> +</COMPONENT> + +<COMPONENT type="5106" id="133" > +<cdparam x="336" y="205" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="Main" /> +<TGConnectingPoint num="0" id="93" /> +<TGConnectingPoint num="1" id="94" /> +<TGConnectingPoint num="2" id="95" /> +<TGConnectingPoint num="3" id="96" /> +<TGConnectingPoint num="4" id="97" /> +<TGConnectingPoint num="5" id="98" /> +<TGConnectingPoint num="6" id="99" /> +<TGConnectingPoint num="7" id="100" /> +<TGConnectingPoint num="8" id="101" /> +<TGConnectingPoint num="9" id="102" /> +<TGConnectingPoint num="10" id="103" /> +<TGConnectingPoint num="11" id="104" /> +<TGConnectingPoint num="12" id="105" /> +<TGConnectingPoint num="13" id="106" /> +<TGConnectingPoint num="14" id="107" /> +<TGConnectingPoint num="15" id="108" /> +<TGConnectingPoint num="16" id="109" /> +<TGConnectingPoint num="17" id="110" /> +<TGConnectingPoint num="18" id="111" /> +<TGConnectingPoint num="19" id="112" /> +<TGConnectingPoint num="20" id="113" /> +<TGConnectingPoint num="21" id="114" /> +<TGConnectingPoint num="22" id="115" /> +<TGConnectingPoint num="23" id="116" /> +<TGConnectingPoint num="24" id="117" /> +<TGConnectingPoint num="25" id="118" /> +<TGConnectingPoint num="26" id="119" /> +<TGConnectingPoint num="27" id="120" /> +<TGConnectingPoint num="28" id="121" /> +<TGConnectingPoint num="29" id="122" /> +<TGConnectingPoint num="30" id="123" /> +<TGConnectingPoint num="31" id="124" /> +<TGConnectingPoint num="32" id="125" /> +<TGConnectingPoint num="33" id="126" /> +<TGConnectingPoint num="34" id="127" /> +<TGConnectingPoint num="35" id="128" /> +<TGConnectingPoint num="36" id="129" /> +<TGConnectingPoint num="37" id="130" /> +<TGConnectingPoint num="38" id="131" /> +<TGConnectingPoint num="39" id="132" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5100" id="135" > +<cdparam x="354" y="133" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="134" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Producer" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="144" > +<cdparam x="481" y="149" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="142" /> +<TGConnectingPoint num="1" id="143" /> +<P1 x="474" y="149" id="258" /> +<P2 x="342" y="251" id="294" /> +<Point x="474" y="251" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="136" > +<father id="144" num="0" /> +<cdparam x="474" y="251" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="141" > +<father id="144" num="1" /> +<cdparam x="494" y="178" /> +<sizeparam width="38" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="137" /> +<TGConnectingPoint num="1" id="138" /> +<TGConnectingPoint num="2" id="139" /> +<TGConnectingPoint num="3" id="140" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="0.1" /> +<actions value="y = 1" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="151" > +<cdparam x="403" y="155" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="150" /> +<P1 x="399" y="149" id="255" /> +<P2 x="342" y="210" id="270" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="149" > +<father id="151" num="0" /> +<cdparam x="302" y="169" /> +<sizeparam width="38" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="145" /> +<TGConnectingPoint num="1" id="146" /> +<TGConnectingPoint num="2" id="147" /> +<TGConnectingPoint num="3" id="148" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="0.9" /> +<actions value="y = 0" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="158" > +<cdparam x="476" y="74" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="157" /> +<P1 x="437" y="63" id="225" /> +<P2 x="437" y="99" id="228" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="156" > +<father id="158" num="0" /> +<cdparam x="473" y="82" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="152" /> +<TGConnectingPoint num="1" id="153" /> +<TGConnectingPoint num="2" id="154" /> +<TGConnectingPoint num="3" id="155" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="165" > +<cdparam x="292" y="277" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="164" /> +<P1 x="292" y="277" id="274" /> +<P2 x="292" y="325" id="214" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="163" > +<father id="165" num="0" /> +<cdparam x="291" y="299" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="159" /> +<TGConnectingPoint num="1" id="160" /> +<TGConnectingPoint num="2" id="161" /> +<TGConnectingPoint num="3" id="162" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="172" > +<cdparam x="315" y="355" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="171" /> +<P1 x="292" y="355" id="215" /> +<P2 x="322" y="409" id="181" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="170" > +<father id="172" num="0" /> +<cdparam x="318" y="382" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="166" /> +<TGConnectingPoint num="1" id="167" /> +<TGConnectingPoint num="2" id="168" /> +<TGConnectingPoint num="3" id="169" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="213" > +<cdparam x="297" y="409" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="main" /> +<TGConnectingPoint num="0" id="173" /> +<TGConnectingPoint num="1" id="174" /> +<TGConnectingPoint num="2" id="175" /> +<TGConnectingPoint num="3" id="176" /> +<TGConnectingPoint num="4" id="177" /> +<TGConnectingPoint num="5" id="178" /> +<TGConnectingPoint num="6" id="179" /> +<TGConnectingPoint num="7" id="180" /> +<TGConnectingPoint num="8" id="181" /> +<TGConnectingPoint num="9" id="182" /> +<TGConnectingPoint num="10" id="183" /> +<TGConnectingPoint num="11" id="184" /> +<TGConnectingPoint num="12" id="185" /> +<TGConnectingPoint num="13" id="186" /> +<TGConnectingPoint num="14" id="187" /> +<TGConnectingPoint num="15" id="188" /> +<TGConnectingPoint num="16" id="189" /> +<TGConnectingPoint num="17" id="190" /> +<TGConnectingPoint num="18" id="191" /> +<TGConnectingPoint num="19" id="192" /> +<TGConnectingPoint num="20" id="193" /> +<TGConnectingPoint num="21" id="194" /> +<TGConnectingPoint num="22" id="195" /> +<TGConnectingPoint num="23" id="196" /> +<TGConnectingPoint num="24" id="197" /> +<TGConnectingPoint num="25" id="198" /> +<TGConnectingPoint num="26" id="199" /> +<TGConnectingPoint num="27" id="200" /> +<TGConnectingPoint num="28" id="201" /> +<TGConnectingPoint num="29" id="202" /> +<TGConnectingPoint num="30" id="203" /> +<TGConnectingPoint num="31" id="204" /> +<TGConnectingPoint num="32" id="205" /> +<TGConnectingPoint num="33" id="206" /> +<TGConnectingPoint num="34" id="207" /> +<TGConnectingPoint num="35" id="208" /> +<TGConnectingPoint num="36" id="209" /> +<TGConnectingPoint num="37" id="210" /> +<TGConnectingPoint num="38" id="211" /> +<TGConnectingPoint num="39" id="212" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="224" > +<cdparam x="271" y="330" /> +<sizeparam width="43" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="put(y)" /> +<TGConnectingPoint num="0" id="214" /> +<TGConnectingPoint num="1" id="215" /> +<TGConnectingPoint num="2" id="216" /> +<TGConnectingPoint num="3" id="217" /> +<TGConnectingPoint num="4" id="218" /> +<TGConnectingPoint num="5" id="219" /> +<TGConnectingPoint num="6" id="220" /> +<TGConnectingPoint num="7" id="221" /> +<TGConnectingPoint num="8" id="222" /> +<TGConnectingPoint num="9" id="223" /> +</COMPONENT> + +<COMPONENT type="5100" id="226" > +<cdparam x="430" y="43" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="225" /> +</COMPONENT> + +<COMPONENT type="5106" id="267" > +<cdparam x="387" y="99" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="main" /> +<TGConnectingPoint num="0" id="227" /> +<TGConnectingPoint num="1" id="228" /> +<TGConnectingPoint num="2" id="229" /> +<TGConnectingPoint num="3" id="230" /> +<TGConnectingPoint num="4" id="231" /> +<TGConnectingPoint num="5" id="232" /> +<TGConnectingPoint num="6" id="233" /> +<TGConnectingPoint num="7" id="234" /> +<TGConnectingPoint num="8" id="235" /> +<TGConnectingPoint num="9" id="236" /> +<TGConnectingPoint num="10" id="237" /> +<TGConnectingPoint num="11" id="238" /> +<TGConnectingPoint num="12" id="239" /> +<TGConnectingPoint num="13" id="240" /> +<TGConnectingPoint num="14" id="241" /> +<TGConnectingPoint num="15" id="242" /> +<TGConnectingPoint num="16" id="243" /> +<TGConnectingPoint num="17" id="244" /> +<TGConnectingPoint num="18" id="245" /> +<TGConnectingPoint num="19" id="246" /> +<TGConnectingPoint num="20" id="247" /> +<TGConnectingPoint num="21" id="248" /> +<TGConnectingPoint num="22" id="249" /> +<TGConnectingPoint num="23" id="250" /> +<TGConnectingPoint num="24" id="251" /> +<TGConnectingPoint num="25" id="252" /> +<TGConnectingPoint num="26" id="253" /> +<TGConnectingPoint num="27" id="254" /> +<TGConnectingPoint num="28" id="255" /> +<TGConnectingPoint num="29" id="256" /> +<TGConnectingPoint num="30" id="257" /> +<TGConnectingPoint num="31" id="258" /> +<TGConnectingPoint num="32" id="259" /> +<TGConnectingPoint num="33" id="260" /> +<TGConnectingPoint num="34" id="261" /> +<TGConnectingPoint num="35" id="262" /> +<TGConnectingPoint num="36" id="263" /> +<TGConnectingPoint num="37" id="264" /> +<TGConnectingPoint num="38" id="265" /> +<TGConnectingPoint num="39" id="266" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="308" > +<cdparam x="242" y="210" /> +<sizeparam width="100" height="67" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="SendVal" /> +<TGConnectingPoint num="0" id="268" /> +<TGConnectingPoint num="1" id="269" /> +<TGConnectingPoint num="2" id="270" /> +<TGConnectingPoint num="3" id="271" /> +<TGConnectingPoint num="4" id="272" /> +<TGConnectingPoint num="5" id="273" /> +<TGConnectingPoint num="6" id="274" /> +<TGConnectingPoint num="7" id="275" /> +<TGConnectingPoint num="8" id="276" /> +<TGConnectingPoint num="9" id="277" /> +<TGConnectingPoint num="10" id="278" /> +<TGConnectingPoint num="11" id="279" /> +<TGConnectingPoint num="12" id="280" /> +<TGConnectingPoint num="13" id="281" /> +<TGConnectingPoint num="14" id="282" /> +<TGConnectingPoint num="15" id="283" /> +<TGConnectingPoint num="16" id="284" /> +<TGConnectingPoint num="17" id="285" /> +<TGConnectingPoint num="18" id="286" /> +<TGConnectingPoint num="19" id="287" /> +<TGConnectingPoint num="20" id="288" /> +<TGConnectingPoint num="21" id="289" /> +<TGConnectingPoint num="22" id="290" /> +<TGConnectingPoint num="23" id="291" /> +<TGConnectingPoint num="24" id="292" /> +<TGConnectingPoint num="25" id="293" /> +<TGConnectingPoint num="26" id="294" /> +<TGConnectingPoint num="27" id="295" /> +<TGConnectingPoint num="28" id="296" /> +<TGConnectingPoint num="29" id="297" /> +<TGConnectingPoint num="30" id="298" /> +<TGConnectingPoint num="31" id="299" /> +<TGConnectingPoint num="32" id="300" /> +<TGConnectingPoint num="33" id="301" /> +<TGConnectingPoint num="34" id="302" /> +<TGConnectingPoint num="35" id="303" /> +<TGConnectingPoint num="36" id="304" /> +<TGConnectingPoint num="37" id="305" /> +<TGConnectingPoint num="38" id="306" /> +<TGConnectingPoint num="39" id="307" /> +<extraparam> +</extraparam> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/modeling/SysMLSec/DRA.xml b/modeling/SysMLSec/DRA.xml new file mode 100644 index 0000000000000000000000000000000000000000..1d2bd5d96f4ef09f7140dd02fc43d1495e331e15 --- /dev/null +++ b/modeling/SysMLSec/DRA.xml @@ -0,0 +1,4439 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="AVATAR Design" nameTab="DRA" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="System;Server;Alice;Bob;" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="143" > +<cdparam x="136" y="201" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="140" /> +<TGConnectingPoint num="1" id="141" /> +<TGConnectingPoint num="2" id="142" /> +<P1 x="136" y="176" id="264" /> +<P2 x="136" y="299" id="257" /> +<Point x="87" y="176" /> +<Point x="87" y="298" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in chin(Message m)" /> +<oso value="out chout(Message m)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="138" > +<father id="143" num="0" /> +<cdparam x="87" y="176" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="139" > +<father id="143" num="1" /> +<cdparam x="87" y="298" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<COMPONENT type="5003" id="152" > +<cdparam x="417" y="564" /> +<sizeparam width="250" height="65" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Message" /> +<TGConnectingPoint num="0" id="144" /> +<TGConnectingPoint num="1" id="145" /> +<TGConnectingPoint num="2" id="146" /> +<TGConnectingPoint num="3" id="147" /> +<TGConnectingPoint num="4" id="148" /> +<TGConnectingPoint num="5" id="149" /> +<TGConnectingPoint num="6" id="150" /> +<TGConnectingPoint num="7" id="151" /> +<extraparam> +<Attribute access="0" id="Message" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="302" id="169" > +<cdparam x="136" y="642" /> +<sizeparam width="299" height="97" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge Alice.RK Bob.RK +#Confidentiality Alice.a +#Confidentiality Bob.b +" /> +<TGConnectingPoint num="0" id="153" /> +<TGConnectingPoint num="1" id="154" /> +<TGConnectingPoint num="2" id="155" /> +<TGConnectingPoint num="3" id="156" /> +<TGConnectingPoint num="4" id="157" /> +<TGConnectingPoint num="5" id="158" /> +<TGConnectingPoint num="6" id="159" /> +<TGConnectingPoint num="7" id="160" /> +<TGConnectingPoint num="8" id="161" /> +<TGConnectingPoint num="9" id="162" /> +<TGConnectingPoint num="10" id="163" /> +<TGConnectingPoint num="11" id="164" /> +<TGConnectingPoint num="12" id="165" /> +<TGConnectingPoint num="13" id="166" /> +<TGConnectingPoint num="14" id="167" /> +<TGConnectingPoint num="15" id="168" /> +<extraparam> +<Line value="#InitialSystemKnowledge Alice.RK Bob.RK" /> +<Line value="#Confidentiality Alice.a" /> +<Line value="#Confidentiality Bob.b" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="178" > +<cdparam x="135" y="564" /> +<sizeparam width="250" height="64" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Key" /> +<TGConnectingPoint num="0" id="170" /> +<TGConnectingPoint num="1" id="171" /> +<TGConnectingPoint num="2" id="172" /> +<TGConnectingPoint num="3" id="173" /> +<TGConnectingPoint num="4" id="174" /> +<TGConnectingPoint num="5" id="175" /> +<TGConnectingPoint num="6" id="176" /> +<TGConnectingPoint num="7" id="177" /> +<extraparam> +<Attribute access="0" id="Key" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="278" > +<cdparam x="136" y="53" /> +<sizeparam width="530" height="492" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block0" value="System" /> +<TGConnectingPoint num="0" id="254" /> +<TGConnectingPoint num="1" id="255" /> +<TGConnectingPoint num="2" id="256" /> +<TGConnectingPoint num="3" id="257" /> +<TGConnectingPoint num="4" id="258" /> +<TGConnectingPoint num="5" id="259" /> +<TGConnectingPoint num="6" id="260" /> +<TGConnectingPoint num="7" id="261" /> +<TGConnectingPoint num="8" id="262" /> +<TGConnectingPoint num="9" id="263" /> +<TGConnectingPoint num="10" id="264" /> +<TGConnectingPoint num="11" id="265" /> +<TGConnectingPoint num="12" id="266" /> +<TGConnectingPoint num="13" id="267" /> +<TGConnectingPoint num="14" id="268" /> +<TGConnectingPoint num="15" id="269" /> +<TGConnectingPoint num="16" id="270" /> +<TGConnectingPoint num="17" id="271" /> +<TGConnectingPoint num="18" id="272" /> +<TGConnectingPoint num="19" id="273" /> +<TGConnectingPoint num="20" id="274" /> +<TGConnectingPoint num="21" id="275" /> +<TGConnectingPoint num="22" id="276" /> +<TGConnectingPoint num="23" id="277" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in chin(Message m)" attached="true" /> +<Signal value="out chout(Message m)" attached="true" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="203" > +<father id="278" num="0" /> +<cdparam x="411" y="121" /> +<sizeparam width="248" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="282" minY="0" maxY="292" /> +<infoparam name="Block0" value="Server" /> +<TGConnectingPoint num="0" id="179" /> +<TGConnectingPoint num="1" id="180" /> +<TGConnectingPoint num="2" id="181" /> +<TGConnectingPoint num="3" id="182" /> +<TGConnectingPoint num="4" id="183" /> +<TGConnectingPoint num="5" id="184" /> +<TGConnectingPoint num="6" id="185" /> +<TGConnectingPoint num="7" id="186" /> +<TGConnectingPoint num="8" id="187" /> +<TGConnectingPoint num="9" id="188" /> +<TGConnectingPoint num="10" id="189" /> +<TGConnectingPoint num="11" id="190" /> +<TGConnectingPoint num="12" id="191" /> +<TGConnectingPoint num="13" id="192" /> +<TGConnectingPoint num="14" id="193" /> +<TGConnectingPoint num="15" id="194" /> +<TGConnectingPoint num="16" id="195" /> +<TGConnectingPoint num="17" id="196" /> +<TGConnectingPoint num="18" id="197" /> +<TGConnectingPoint num="19" id="198" /> +<TGConnectingPoint num="20" id="199" /> +<TGConnectingPoint num="21" id="200" /> +<TGConnectingPoint num="22" id="201" /> +<TGConnectingPoint num="23" id="202" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="filler" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="requestBobPublicKeyBundle" value="" type="5" typeOther="Message" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message hash(Message msg)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="228" > +<father id="278" num="1" /> +<cdparam x="143" y="327" /> +<sizeparam width="250" height="211" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="280" minY="0" maxY="281" /> +<infoparam name="Block1" value="Alice" /> +<TGConnectingPoint num="0" id="204" /> +<TGConnectingPoint num="1" id="205" /> +<TGConnectingPoint num="2" id="206" /> +<TGConnectingPoint num="3" id="207" /> +<TGConnectingPoint num="4" id="208" /> +<TGConnectingPoint num="5" id="209" /> +<TGConnectingPoint num="6" id="210" /> +<TGConnectingPoint num="7" id="211" /> +<TGConnectingPoint num="8" id="212" /> +<TGConnectingPoint num="9" id="213" /> +<TGConnectingPoint num="10" id="214" /> +<TGConnectingPoint num="11" id="215" /> +<TGConnectingPoint num="12" id="216" /> +<TGConnectingPoint num="13" id="217" /> +<TGConnectingPoint num="14" id="218" /> +<TGConnectingPoint num="15" id="219" /> +<TGConnectingPoint num="16" id="220" /> +<TGConnectingPoint num="17" id="221" /> +<TGConnectingPoint num="18" id="222" /> +<TGConnectingPoint num="19" id="223" /> +<TGConnectingPoint num="20" id="224" /> +<TGConnectingPoint num="21" id="225" /> +<TGConnectingPoint num="22" id="226" /> +<TGConnectingPoint num="23" id="227" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="requestBobPublicKeyBundle" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="sign" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="b" value="" type="4" typeOther="" /> +<Attribute access="0" id="tmp3" value="" type="8" typeOther="" /> +<Attribute access="0" id="tmp4" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="curr_K_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="curr_Ks_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="next_K_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="next_Ks_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="curr_K_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="next_K_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH_sending" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH_receiving" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="RK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="CK_receiving" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="CK_sending" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="filler3" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="a" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="a_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="next_K_b_2" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="a2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="a2_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler4" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler5" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler6" value="" type="5" typeOther="Message" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message hash(Message msg)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="253" > +<father id="278" num="2" /> +<cdparam x="410" y="327" /> +<sizeparam width="250" height="211" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="280" minY="0" maxY="281" /> +<infoparam name="Block0" value="Bob" /> +<TGConnectingPoint num="0" id="229" /> +<TGConnectingPoint num="1" id="230" /> +<TGConnectingPoint num="2" id="231" /> +<TGConnectingPoint num="3" id="232" /> +<TGConnectingPoint num="4" id="233" /> +<TGConnectingPoint num="5" id="234" /> +<TGConnectingPoint num="6" id="235" /> +<TGConnectingPoint num="7" id="236" /> +<TGConnectingPoint num="8" id="237" /> +<TGConnectingPoint num="9" id="238" /> +<TGConnectingPoint num="10" id="239" /> +<TGConnectingPoint num="11" id="240" /> +<TGConnectingPoint num="12" id="241" /> +<TGConnectingPoint num="13" id="242" /> +<TGConnectingPoint num="14" id="243" /> +<TGConnectingPoint num="15" id="244" /> +<TGConnectingPoint num="16" id="245" /> +<TGConnectingPoint num="17" id="246" /> +<TGConnectingPoint num="18" id="247" /> +<TGConnectingPoint num="19" id="248" /> +<TGConnectingPoint num="20" id="249" /> +<TGConnectingPoint num="21" id="250" /> +<TGConnectingPoint num="22" id="251" /> +<TGConnectingPoint num="23" id="252" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="filler" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp3" value="" type="8" typeOther="" /> +<Attribute access="0" id="tmp4" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="curr_K_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="curr_Ks_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="next_K_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="next_Ks_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="curr_K_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="next_K_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="RK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="N" value="" type="8" typeOther="" /> +<Attribute access="0" id="DH_sending" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH_receiving" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="CK_sending" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="CK_receiving" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="b" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="b_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler4" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler3" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="Next_Ks_b_2" value="" type="4" typeOther="" /> +<Attribute access="0" id="filler6" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler5" value="" type="5" typeOther="Message" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message hash(Message msg)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +</extraparam> +</SUBCOMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="2500" minY="10" maxY="1500" > +<COMPONENT type="5100" id="280" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="279" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="2500" minY="10" maxY="4000" > +<CONNECTOR type="5102" id="287" > +<cdparam x="312" y="226" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="286" /> +<P1 x="312" y="206" id="1148" /> +<P2 x="245" y="245" id="463" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="285" > +<father id="287" num="0" /> +<cdparam x="265" y="248" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="281" /> +<TGConnectingPoint num="1" id="282" /> +<TGConnectingPoint num="2" id="283" /> +<TGConnectingPoint num="3" id="284" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="294" > +<cdparam x="312" y="67" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="293" /> +<P1 x="312" y="67" id="1158" /> +<P2 x="312" y="90" id="466" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="292" > +<father id="294" num="0" /> +<cdparam x="327" y="95" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="288" /> +<TGConnectingPoint num="1" id="289" /> +<TGConnectingPoint num="2" id="290" /> +<TGConnectingPoint num="3" id="291" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="301" > +<cdparam x="378" y="269" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="300" /> +<P1 x="245" y="389" id="470" /> +<P2 x="281" y="408" id="1134" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="299" > +<father id="301" num="0" /> +<cdparam x="379" y="311" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="295" /> +<TGConnectingPoint num="1" id="296" /> +<TGConnectingPoint num="2" id="297" /> +<TGConnectingPoint num="3" id="298" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="308" > +<cdparam x="404" y="170" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="307" /> +<P1 x="245" y="275" id="464" /> +<P2 x="245" y="359" id="469" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="306" > +<father id="308" num="0" /> +<cdparam x="309" y="301" /> +<sizeparam width="204" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="302" /> +<TGConnectingPoint num="1" id="303" /> +<TGConnectingPoint num="2" id="304" /> +<TGConnectingPoint num="3" id="305" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="next_Ks_b.Key = tmp3" /> +<actions value="next_K_b=pk(next_Ks_b) " /> +<actions value="tmp2.Message = next_K_b.Key" /> +<actions value="filler2.Message = tmp2.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="315" > +<cdparam x="265" y="2904" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="314" /> +<P1 x="266" y="3120" id="527" /> +<P2 x="266" y="3242" id="481" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="313" > +<father id="315" num="0" /> +<cdparam x="272" y="3188" /> +<sizeparam width="238" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="309" /> +<TGConnectingPoint num="1" id="310" /> +<TGConnectingPoint num="2" id="311" /> +<TGConnectingPoint num="3" id="312" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="m = sdecrypt(m_cipher, CK_receiving) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="322" > +<cdparam x="258" y="2757" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="321" /> +<P1 x="219" y="2826" id="568" /> +<P2 x="266" y="3070" id="522" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="320" > +<father id="322" num="0" /> +<cdparam x="265" y="2930" /> +<sizeparam width="212" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="316" /> +<TGConnectingPoint num="1" id="317" /> +<TGConnectingPoint num="2" id="318" /> +<TGConnectingPoint num="3" id="319" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = CK_receiving.Key" /> +<actions value="tmp4 = hash(tmp1)" /> +<actions value="CK_receiving.Key = tmp4.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="329" > +<cdparam x="267" y="2631" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="328" /> +<P1 x="250" y="2631" id="609" /> +<P2 x="219" y="2776" id="563" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="327" > +<father id="329" num="0" /> +<cdparam x="266" y="2658" /> +<sizeparam width="215" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="323" /> +<TGConnectingPoint num="1" id="324" /> +<TGConnectingPoint num="2" id="325" /> +<TGConnectingPoint num="3" id="326" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = RK.Key" /> +<actions value="tmp2.Message = DH_receiving.Key" /> +<actions value="tmp4 = concat2(tmp1, tmp2) " /> +<actions value="tmp1=hash(tmp4)" /> +<actions value="CK_receiving.Key = tmp1.Message" /> +<actions value="RK.Key = CK_receiving.Key" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="336" > +<cdparam x="272" y="2380" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="335" /> +<P1 x="196" y="2322" id="686" /> +<P2 x="250" y="2440" id="645" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="334" > +<father id="336" num="0" /> +<cdparam x="254" y="2350" /> +<sizeparam width="265" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="330" /> +<TGConnectingPoint num="1" id="331" /> +<TGConnectingPoint num="2" id="332" /> +<TGConnectingPoint num="3" id="333" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="get4(filler3, tmp1 ,tmp2, tmp4 , m_cipher) " /> +<actions value="next_K_a.Key = tmp1.Message" /> +<actions value="curr_K_a.Key = tmp2.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="343" > +<cdparam x="292" y="2219" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="342" /> +<P1 x="288" y="2170" id="697" /> +<P2 x="246" y="2226" id="699" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="341" > +<father id="343" num="0" /> +<cdparam x="319" y="2191" /> +<sizeparam width="204" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="337" /> +<TGConnectingPoint num="1" id="338" /> +<TGConnectingPoint num="2" id="339" /> +<TGConnectingPoint num="3" id="340" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="next_Ks_b.Key = tmp3" /> +<actions value="next_K_b = pk(curr_Ks_b) " /> +<actions value="tmp1.Message = next_K_b.Key" /> +<actions value="filler5.Message = tmp1.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="350" > +<cdparam x="257" y="1734" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="349" /> +<P1 x="247" y="1716" id="812" /> +<P2 x="247" y="1786" id="766" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="348" > +<father id="350" num="0" /> +<cdparam x="289" y="1737" /> +<sizeparam width="226" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="344" /> +<TGConnectingPoint num="1" id="345" /> +<TGConnectingPoint num="2" id="346" /> +<TGConnectingPoint num="3" id="347" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="b_cipher = sencrypt(b, CK_sending) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="357" > +<cdparam x="247" y="1591" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="356" /> +<P1 x="247" y="1591" id="853" /> +<P2 x="247" y="1666" id="807" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="355" > +<father id="357" num="0" /> +<cdparam x="280" y="1646" /> +<sizeparam width="238" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="351" /> +<TGConnectingPoint num="1" id="352" /> +<TGConnectingPoint num="2" id="353" /> +<TGConnectingPoint num="3" id="354" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="m = sdecrypt(m_cipher, CK_receiving) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="364" > +<cdparam x="267" y="1376" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="363" /> +<P1 x="291" y="1425" id="894" /> +<P2 x="247" y="1541" id="848" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="362" > +<father id="364" num="0" /> +<cdparam x="271" y="1470" /> +<sizeparam width="206" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="358" /> +<TGConnectingPoint num="1" id="359" /> +<TGConnectingPoint num="2" id="360" /> +<TGConnectingPoint num="3" id="361" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = CK_sending.Key" /> +<actions value="tmp4 = hash(tmp1)" /> +<actions value="CK_sending.Key = tmp4.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="371" > +<cdparam x="272" y="1281" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="370" /> +<P1 x="291" y="1281" id="935" /> +<P2 x="291" y="1375" id="889" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="369" > +<father id="371" num="0" /> +<cdparam x="286" y="1320" /> +<sizeparam width="212" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="365" /> +<TGConnectingPoint num="1" id="366" /> +<TGConnectingPoint num="2" id="367" /> +<TGConnectingPoint num="3" id="368" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = CK_receiving.Key" /> +<actions value="tmp4 = hash(tmp1)" /> +<actions value="CK_receiving.Key = tmp4.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="378" > +<cdparam x="344" y="931" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="377" /> +<P1 x="379" y="859" id="1017" /> +<P2 x="329" y="1051" id="971" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="376" > +<father id="378" num="0" /> +<cdparam x="375" y="990" /> +<sizeparam width="257" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="372" /> +<TGConnectingPoint num="1" id="373" /> +<TGConnectingPoint num="2" id="374" /> +<TGConnectingPoint num="3" id="375" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH_receiving = DH(next_K_a , next_Ks_b) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="385" > +<cdparam x="373" y="710" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="384" /> +<P1 x="379" y="676" id="1058" /> +<P2 x="379" y="809" id="1012" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="383" > +<father id="385" num="0" /> +<cdparam x="395" y="699" /> +<sizeparam width="209" height="75" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="379" /> +<TGConnectingPoint num="1" id="380" /> +<TGConnectingPoint num="2" id="381" /> +<TGConnectingPoint num="3" id="382" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = RK.Key" /> +<actions value="tmp2.Message = DH_sending.Key" /> +<actions value="tmp4 = concat2(tmp1, tmp2) " /> +<actions value="tmp1=hash(tmp4)" /> +<actions value="CK_sending.Key = tmp1.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="392" > +<cdparam x="379" y="537" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="391" /> +<P1 x="379" y="537" id="1099" /> +<P2 x="379" y="626" id="1053" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="390" > +<father id="392" num="0" /> +<cdparam x="405" y="588" /> +<sizeparam width="247" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="386" /> +<TGConnectingPoint num="1" id="387" /> +<TGConnectingPoint num="2" id="388" /> +<TGConnectingPoint num="3" id="389" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH_sending = DH(curr_K_a , curr_Ks_b) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="399" > +<cdparam x="381" y="383" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="398" /> +<P1 x="281" y="438" id="1135" /> +<P2 x="379" y="487" id="1094" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="397" > +<father id="399" num="0" /> +<cdparam x="362" y="438" /> +<sizeparam width="242" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="393" /> +<TGConnectingPoint num="1" id="394" /> +<TGConnectingPoint num="2" id="395" /> +<TGConnectingPoint num="3" id="396" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="get4(filler3, tmp1 ,tmp2, N , m_cipher) " /> +<actions value="next_K_a.Key = tmp1.Message" /> +<actions value="curr_K_a.Key = tmp2.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="406" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="405" /> +<P1 x="312" y="120" id="467" /> +<P2 x="312" y="176" id="1147" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="404" > +<father id="406" num="0" /> +<cdparam x="339" y="138" /> +<sizeparam width="196" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="400" /> +<TGConnectingPoint num="1" id="401" /> +<TGConnectingPoint num="2" id="402" /> +<TGConnectingPoint num="3" id="403" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="curr_Ks_b.Key = tmp3" /> +<actions value="curr_K_b=pk(curr_Ks_b) " /> +<actions value="tmp1.Message = curr_K_b.Key" /> +<actions value="filler.Message = tmp1.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="413" > +<cdparam x="291" y="1101" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="412" /> +<P1 x="291" y="1101" id="999" /> +<P2 x="291" y="1231" id="930" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="411" > +<father id="413" num="0" /> +<cdparam x="324" y="1131" /> +<sizeparam width="215" height="75" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="407" /> +<TGConnectingPoint num="1" id="408" /> +<TGConnectingPoint num="2" id="409" /> +<TGConnectingPoint num="3" id="410" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = DH_receiving.Key" /> +<actions value="tmp2.Message = CK_sending.Key" /> +<actions value="tmp4 = concat2(tmp2, tmp1) " /> +<actions value="tmp1 = hash(tmp4)" /> +<actions value="CK_receiving.Key = tmp1.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="420" > +<cdparam x="319" y="2061" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="419" /> +<P1 x="319" y="2061" id="754" /> +<P2 x="319" y="2087" id="713" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="418" > +<father id="420" num="0" /> +<cdparam x="315" y="2096" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="414" /> +<TGConnectingPoint num="1" id="415" /> +<TGConnectingPoint num="2" id="416" /> +<TGConnectingPoint num="3" id="417" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="427" > +<cdparam x="312" y="2162" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="426" /> +<P1 x="319" y="2117" id="714" /> +<P2 x="288" y="2140" id="696" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="425" > +<father id="427" num="0" /> +<cdparam x="305" y="2191" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="421" /> +<TGConnectingPoint num="1" id="422" /> +<TGConnectingPoint num="2" id="423" /> +<TGConnectingPoint num="3" id="424" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="434" > +<cdparam x="357" y="1846" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="433" /> +<P1 x="333" y="1836" id="796" /> +<P2 x="280" y="1859" id="710" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="432" > +<father id="434" num="0" /> +<cdparam x="353" y="1867" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="428" /> +<TGConnectingPoint num="1" id="429" /> +<TGConnectingPoint num="2" id="430" /> +<TGConnectingPoint num="3" id="431" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="441" > +<cdparam x="350" y="1919" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="440" /> +<P1 x="280" y="1889" id="711" /> +<P2 x="350" y="2011" id="733" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="439" > +<father id="441" num="0" /> +<cdparam x="331" y="1924" /> +<sizeparam width="226" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="435" /> +<TGConnectingPoint num="1" id="436" /> +<TGConnectingPoint num="2" id="437" /> +<TGConnectingPoint num="3" id="438" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="curr_Ks_b.Key = tmp3" /> +<actions value="curr_K_b = pk(curr_Ks_b) " /> +<actions value="tmp1.Message = curr_K_b.Key" /> +<actions value="filler4 = concat3(tmp1, 2, b_cipher) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="448" > +<cdparam x="275" y="2294" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="447" /> +<P1 x="246" y="2256" id="700" /> +<P2 x="196" y="2292" id="685" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="446" > +<father id="448" num="0" /> +<cdparam x="284" y="2340" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="442" /> +<TGConnectingPoint num="1" id="443" /> +<TGConnectingPoint num="2" id="444" /> +<TGConnectingPoint num="3" id="445" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="455" > +<cdparam x="287" y="2490" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="454" /> +<P1 x="250" y="2490" id="650" /> +<P2 x="250" y="2581" id="604" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="453" > +<father id="455" num="0" /> +<cdparam x="276" y="2529" /> +<sizeparam width="257" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="449" /> +<TGConnectingPoint num="1" id="450" /> +<TGConnectingPoint num="2" id="451" /> +<TGConnectingPoint num="3" id="452" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH_receiving = DH(next_K_a , next_Ks_b) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="462" > +<cdparam x="246" y="3078" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="461" /> +<P1 x="266" y="3292" id="486" /> +<P2 x="229" y="3428" id="1145" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="460" > +<father id="462" num="0" /> +<cdparam x="245" y="3126" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="456" /> +<TGConnectingPoint num="1" id="457" /> +<TGConnectingPoint num="2" id="458" /> +<TGConnectingPoint num="3" id="459" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5108" id="465" > +<cdparam x="164" y="250" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="463" /> +<TGConnectingPoint num="1" id="464" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5108" id="468" > +<cdparam x="231" y="95" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="466" /> +<TGConnectingPoint num="1" id="467" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="479" > +<cdparam x="200" y="364" /> +<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Send signal" value="chout(filler2)" /> +<TGConnectingPoint num="0" id="469" /> +<TGConnectingPoint num="1" id="470" /> +<TGConnectingPoint num="2" id="471" /> +<TGConnectingPoint num="3" id="472" /> +<TGConnectingPoint num="4" id="473" /> +<TGConnectingPoint num="5" id="474" /> +<TGConnectingPoint num="6" id="475" /> +<TGConnectingPoint num="7" id="476" /> +<TGConnectingPoint num="8" id="477" /> +<TGConnectingPoint num="9" id="478" /> +</COMPONENT> + +<COMPONENT type="5106" id="520" > +<cdparam x="190" y="3242" /> +<sizeparam width="153" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Decryption_2" /> +<TGConnectingPoint num="0" id="480" /> +<TGConnectingPoint num="1" id="481" /> +<TGConnectingPoint num="2" id="482" /> +<TGConnectingPoint num="3" id="483" /> +<TGConnectingPoint num="4" id="484" /> +<TGConnectingPoint num="5" id="485" /> +<TGConnectingPoint num="6" id="486" /> +<TGConnectingPoint num="7" id="487" /> +<TGConnectingPoint num="8" id="488" /> +<TGConnectingPoint num="9" id="489" /> +<TGConnectingPoint num="10" id="490" /> +<TGConnectingPoint num="11" id="491" /> +<TGConnectingPoint num="12" id="492" /> +<TGConnectingPoint num="13" id="493" /> +<TGConnectingPoint num="14" id="494" /> +<TGConnectingPoint num="15" id="495" /> +<TGConnectingPoint num="16" id="496" /> +<TGConnectingPoint num="17" id="497" /> +<TGConnectingPoint num="18" id="498" /> +<TGConnectingPoint num="19" id="499" /> +<TGConnectingPoint num="20" id="500" /> +<TGConnectingPoint num="21" id="501" /> +<TGConnectingPoint num="22" id="502" /> +<TGConnectingPoint num="23" id="503" /> +<TGConnectingPoint num="24" id="504" /> +<TGConnectingPoint num="25" id="505" /> +<TGConnectingPoint num="26" id="506" /> +<TGConnectingPoint num="27" id="507" /> +<TGConnectingPoint num="28" id="508" /> +<TGConnectingPoint num="29" id="509" /> +<TGConnectingPoint num="30" id="510" /> +<TGConnectingPoint num="31" id="511" /> +<TGConnectingPoint num="32" id="512" /> +<TGConnectingPoint num="33" id="513" /> +<TGConnectingPoint num="34" id="514" /> +<TGConnectingPoint num="35" id="515" /> +<TGConnectingPoint num="36" id="516" /> +<TGConnectingPoint num="37" id="517" /> +<TGConnectingPoint num="38" id="518" /> +<TGConnectingPoint num="39" id="519" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="561" > +<cdparam x="79" y="3070" /> +<sizeparam width="374" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Receiving_Message_Key_2" /> +<TGConnectingPoint num="0" id="521" /> +<TGConnectingPoint num="1" id="522" /> +<TGConnectingPoint num="2" id="523" /> +<TGConnectingPoint num="3" id="524" /> +<TGConnectingPoint num="4" id="525" /> +<TGConnectingPoint num="5" id="526" /> +<TGConnectingPoint num="6" id="527" /> +<TGConnectingPoint num="7" id="528" /> +<TGConnectingPoint num="8" id="529" /> +<TGConnectingPoint num="9" id="530" /> +<TGConnectingPoint num="10" id="531" /> +<TGConnectingPoint num="11" id="532" /> +<TGConnectingPoint num="12" id="533" /> +<TGConnectingPoint num="13" id="534" /> +<TGConnectingPoint num="14" id="535" /> +<TGConnectingPoint num="15" id="536" /> +<TGConnectingPoint num="16" id="537" /> +<TGConnectingPoint num="17" id="538" /> +<TGConnectingPoint num="18" id="539" /> +<TGConnectingPoint num="19" id="540" /> +<TGConnectingPoint num="20" id="541" /> +<TGConnectingPoint num="21" id="542" /> +<TGConnectingPoint num="22" id="543" /> +<TGConnectingPoint num="23" id="544" /> +<TGConnectingPoint num="24" id="545" /> +<TGConnectingPoint num="25" id="546" /> +<TGConnectingPoint num="26" id="547" /> +<TGConnectingPoint num="27" id="548" /> +<TGConnectingPoint num="28" id="549" /> +<TGConnectingPoint num="29" id="550" /> +<TGConnectingPoint num="30" id="551" /> +<TGConnectingPoint num="31" id="552" /> +<TGConnectingPoint num="32" id="553" /> +<TGConnectingPoint num="33" id="554" /> +<TGConnectingPoint num="34" id="555" /> +<TGConnectingPoint num="35" id="556" /> +<TGConnectingPoint num="36" id="557" /> +<TGConnectingPoint num="37" id="558" /> +<TGConnectingPoint num="38" id="559" /> +<TGConnectingPoint num="39" id="560" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="602" > +<cdparam x="72" y="2776" /> +<sizeparam width="294" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="KDF_RK_receiving_2" /> +<TGConnectingPoint num="0" id="562" /> +<TGConnectingPoint num="1" id="563" /> +<TGConnectingPoint num="2" id="564" /> +<TGConnectingPoint num="3" id="565" /> +<TGConnectingPoint num="4" id="566" /> +<TGConnectingPoint num="5" id="567" /> +<TGConnectingPoint num="6" id="568" /> +<TGConnectingPoint num="7" id="569" /> +<TGConnectingPoint num="8" id="570" /> +<TGConnectingPoint num="9" id="571" /> +<TGConnectingPoint num="10" id="572" /> +<TGConnectingPoint num="11" id="573" /> +<TGConnectingPoint num="12" id="574" /> +<TGConnectingPoint num="13" id="575" /> +<TGConnectingPoint num="14" id="576" /> +<TGConnectingPoint num="15" id="577" /> +<TGConnectingPoint num="16" id="578" /> +<TGConnectingPoint num="17" id="579" /> +<TGConnectingPoint num="18" id="580" /> +<TGConnectingPoint num="19" id="581" /> +<TGConnectingPoint num="20" id="582" /> +<TGConnectingPoint num="21" id="583" /> +<TGConnectingPoint num="22" id="584" /> +<TGConnectingPoint num="23" id="585" /> +<TGConnectingPoint num="24" id="586" /> +<TGConnectingPoint num="25" id="587" /> +<TGConnectingPoint num="26" id="588" /> +<TGConnectingPoint num="27" id="589" /> +<TGConnectingPoint num="28" id="590" /> +<TGConnectingPoint num="29" id="591" /> +<TGConnectingPoint num="30" id="592" /> +<TGConnectingPoint num="31" id="593" /> +<TGConnectingPoint num="32" id="594" /> +<TGConnectingPoint num="33" id="595" /> +<TGConnectingPoint num="34" id="596" /> +<TGConnectingPoint num="35" id="597" /> +<TGConnectingPoint num="36" id="598" /> +<TGConnectingPoint num="37" id="599" /> +<TGConnectingPoint num="38" id="600" /> +<TGConnectingPoint num="39" id="601" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="643" > +<cdparam x="125" y="2581" /> +<sizeparam width="250" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="DH_receiving_2" /> +<TGConnectingPoint num="0" id="603" /> +<TGConnectingPoint num="1" id="604" /> +<TGConnectingPoint num="2" id="605" /> +<TGConnectingPoint num="3" id="606" /> +<TGConnectingPoint num="4" id="607" /> +<TGConnectingPoint num="5" id="608" /> +<TGConnectingPoint num="6" id="609" /> +<TGConnectingPoint num="7" id="610" /> +<TGConnectingPoint num="8" id="611" /> +<TGConnectingPoint num="9" id="612" /> +<TGConnectingPoint num="10" id="613" /> +<TGConnectingPoint num="11" id="614" /> +<TGConnectingPoint num="12" id="615" /> +<TGConnectingPoint num="13" id="616" /> +<TGConnectingPoint num="14" id="617" /> +<TGConnectingPoint num="15" id="618" /> +<TGConnectingPoint num="16" id="619" /> +<TGConnectingPoint num="17" id="620" /> +<TGConnectingPoint num="18" id="621" /> +<TGConnectingPoint num="19" id="622" /> +<TGConnectingPoint num="20" id="623" /> +<TGConnectingPoint num="21" id="624" /> +<TGConnectingPoint num="22" id="625" /> +<TGConnectingPoint num="23" id="626" /> +<TGConnectingPoint num="24" id="627" /> +<TGConnectingPoint num="25" id="628" /> +<TGConnectingPoint num="26" id="629" /> +<TGConnectingPoint num="27" id="630" /> +<TGConnectingPoint num="28" id="631" /> +<TGConnectingPoint num="29" id="632" /> +<TGConnectingPoint num="30" id="633" /> +<TGConnectingPoint num="31" id="634" /> +<TGConnectingPoint num="32" id="635" /> +<TGConnectingPoint num="33" id="636" /> +<TGConnectingPoint num="34" id="637" /> +<TGConnectingPoint num="35" id="638" /> +<TGConnectingPoint num="36" id="639" /> +<TGConnectingPoint num="37" id="640" /> +<TGConnectingPoint num="38" id="641" /> +<TGConnectingPoint num="39" id="642" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="684" > +<cdparam x="200" y="2440" /> +<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Receiving_a2" /> +<TGConnectingPoint num="0" id="644" /> +<TGConnectingPoint num="1" id="645" /> +<TGConnectingPoint num="2" id="646" /> +<TGConnectingPoint num="3" id="647" /> +<TGConnectingPoint num="4" id="648" /> +<TGConnectingPoint num="5" id="649" /> +<TGConnectingPoint num="6" id="650" /> +<TGConnectingPoint num="7" id="651" /> +<TGConnectingPoint num="8" id="652" /> +<TGConnectingPoint num="9" id="653" /> +<TGConnectingPoint num="10" id="654" /> +<TGConnectingPoint num="11" id="655" /> +<TGConnectingPoint num="12" id="656" /> +<TGConnectingPoint num="13" id="657" /> +<TGConnectingPoint num="14" id="658" /> +<TGConnectingPoint num="15" id="659" /> +<TGConnectingPoint num="16" id="660" /> +<TGConnectingPoint num="17" id="661" /> +<TGConnectingPoint num="18" id="662" /> +<TGConnectingPoint num="19" id="663" /> +<TGConnectingPoint num="20" id="664" /> +<TGConnectingPoint num="21" id="665" /> +<TGConnectingPoint num="22" id="666" /> +<TGConnectingPoint num="23" id="667" /> +<TGConnectingPoint num="24" id="668" /> +<TGConnectingPoint num="25" id="669" /> +<TGConnectingPoint num="26" id="670" /> +<TGConnectingPoint num="27" id="671" /> +<TGConnectingPoint num="28" id="672" /> +<TGConnectingPoint num="29" id="673" /> +<TGConnectingPoint num="30" id="674" /> +<TGConnectingPoint num="31" id="675" /> +<TGConnectingPoint num="32" id="676" /> +<TGConnectingPoint num="33" id="677" /> +<TGConnectingPoint num="34" id="678" /> +<TGConnectingPoint num="35" id="679" /> +<TGConnectingPoint num="36" id="680" /> +<TGConnectingPoint num="37" id="681" /> +<TGConnectingPoint num="38" id="682" /> +<TGConnectingPoint num="39" id="683" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="695" > +<cdparam x="152" y="2297" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Receive signal" value="chin(filler6)" /> +<TGConnectingPoint num="0" id="685" /> +<TGConnectingPoint num="1" id="686" /> +<TGConnectingPoint num="2" id="687" /> +<TGConnectingPoint num="3" id="688" /> +<TGConnectingPoint num="4" id="689" /> +<TGConnectingPoint num="5" id="690" /> +<TGConnectingPoint num="6" id="691" /> +<TGConnectingPoint num="7" id="692" /> +<TGConnectingPoint num="8" id="693" /> +<TGConnectingPoint num="9" id="694" /> +</COMPONENT> + +<COMPONENT type="5108" id="698" > +<cdparam x="207" y="2145" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="696" /> +<TGConnectingPoint num="1" id="697" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="709" > +<cdparam x="201" y="2231" /> +<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Send signal" value="chout(filler5)" /> +<TGConnectingPoint num="0" id="699" /> +<TGConnectingPoint num="1" id="700" /> +<TGConnectingPoint num="2" id="701" /> +<TGConnectingPoint num="3" id="702" /> +<TGConnectingPoint num="4" id="703" /> +<TGConnectingPoint num="5" id="704" /> +<TGConnectingPoint num="6" id="705" /> +<TGConnectingPoint num="7" id="706" /> +<TGConnectingPoint num="8" id="707" /> +<TGConnectingPoint num="9" id="708" /> +</COMPONENT> + +<COMPONENT type="5108" id="712" > +<cdparam x="199" y="1864" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="710" /> +<TGConnectingPoint num="1" id="711" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="723" > +<cdparam x="274" y="2092" /> +<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Send signal" value="chout(filler4)" /> +<TGConnectingPoint num="0" id="713" /> +<TGConnectingPoint num="1" id="714" /> +<TGConnectingPoint num="2" id="715" /> +<TGConnectingPoint num="3" id="716" /> +<TGConnectingPoint num="4" id="717" /> +<TGConnectingPoint num="5" id="718" /> +<TGConnectingPoint num="6" id="719" /> +<TGConnectingPoint num="7" id="720" /> +<TGConnectingPoint num="8" id="721" /> +<TGConnectingPoint num="9" id="722" /> +</COMPONENT> + +<COMPONENT type="5106" id="764" > +<cdparam x="169" y="2011" /> +<sizeparam width="242" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Sending_message" /> +<TGConnectingPoint num="0" id="724" /> +<TGConnectingPoint num="1" id="725" /> +<TGConnectingPoint num="2" id="726" /> +<TGConnectingPoint num="3" id="727" /> +<TGConnectingPoint num="4" id="728" /> +<TGConnectingPoint num="5" id="729" /> +<TGConnectingPoint num="6" id="730" /> +<TGConnectingPoint num="7" id="731" /> +<TGConnectingPoint num="8" id="732" /> +<TGConnectingPoint num="9" id="733" /> +<TGConnectingPoint num="10" id="734" /> +<TGConnectingPoint num="11" id="735" /> +<TGConnectingPoint num="12" id="736" /> +<TGConnectingPoint num="13" id="737" /> +<TGConnectingPoint num="14" id="738" /> +<TGConnectingPoint num="15" id="739" /> +<TGConnectingPoint num="16" id="740" /> +<TGConnectingPoint num="17" id="741" /> +<TGConnectingPoint num="18" id="742" /> +<TGConnectingPoint num="19" id="743" /> +<TGConnectingPoint num="20" id="744" /> +<TGConnectingPoint num="21" id="745" /> +<TGConnectingPoint num="22" id="746" /> +<TGConnectingPoint num="23" id="747" /> +<TGConnectingPoint num="24" id="748" /> +<TGConnectingPoint num="25" id="749" /> +<TGConnectingPoint num="26" id="750" /> +<TGConnectingPoint num="27" id="751" /> +<TGConnectingPoint num="28" id="752" /> +<TGConnectingPoint num="29" id="753" /> +<TGConnectingPoint num="30" id="754" /> +<TGConnectingPoint num="31" id="755" /> +<TGConnectingPoint num="32" id="756" /> +<TGConnectingPoint num="33" id="757" /> +<TGConnectingPoint num="34" id="758" /> +<TGConnectingPoint num="35" id="759" /> +<TGConnectingPoint num="36" id="760" /> +<TGConnectingPoint num="37" id="761" /> +<TGConnectingPoint num="38" id="762" /> +<TGConnectingPoint num="39" id="763" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="805" > +<cdparam x="130" y="1786" /> +<sizeparam width="234" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Encryption" /> +<TGConnectingPoint num="0" id="765" /> +<TGConnectingPoint num="1" id="766" /> +<TGConnectingPoint num="2" id="767" /> +<TGConnectingPoint num="3" id="768" /> +<TGConnectingPoint num="4" id="769" /> +<TGConnectingPoint num="5" id="770" /> +<TGConnectingPoint num="6" id="771" /> +<TGConnectingPoint num="7" id="772" /> +<TGConnectingPoint num="8" id="773" /> +<TGConnectingPoint num="9" id="774" /> +<TGConnectingPoint num="10" id="775" /> +<TGConnectingPoint num="11" id="776" /> +<TGConnectingPoint num="12" id="777" /> +<TGConnectingPoint num="13" id="778" /> +<TGConnectingPoint num="14" id="779" /> +<TGConnectingPoint num="15" id="780" /> +<TGConnectingPoint num="16" id="781" /> +<TGConnectingPoint num="17" id="782" /> +<TGConnectingPoint num="18" id="783" /> +<TGConnectingPoint num="19" id="784" /> +<TGConnectingPoint num="20" id="785" /> +<TGConnectingPoint num="21" id="786" /> +<TGConnectingPoint num="22" id="787" /> +<TGConnectingPoint num="23" id="788" /> +<TGConnectingPoint num="24" id="789" /> +<TGConnectingPoint num="25" id="790" /> +<TGConnectingPoint num="26" id="791" /> +<TGConnectingPoint num="27" id="792" /> +<TGConnectingPoint num="28" id="793" /> +<TGConnectingPoint num="29" id="794" /> +<TGConnectingPoint num="30" id="795" /> +<TGConnectingPoint num="31" id="796" /> +<TGConnectingPoint num="32" id="797" /> +<TGConnectingPoint num="33" id="798" /> +<TGConnectingPoint num="34" id="799" /> +<TGConnectingPoint num="35" id="800" /> +<TGConnectingPoint num="36" id="801" /> +<TGConnectingPoint num="37" id="802" /> +<TGConnectingPoint num="38" id="803" /> +<TGConnectingPoint num="39" id="804" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="846" > +<cdparam x="127" y="1666" /> +<sizeparam width="241" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Decryption" /> +<TGConnectingPoint num="0" id="806" /> +<TGConnectingPoint num="1" id="807" /> +<TGConnectingPoint num="2" id="808" /> +<TGConnectingPoint num="3" id="809" /> +<TGConnectingPoint num="4" id="810" /> +<TGConnectingPoint num="5" id="811" /> +<TGConnectingPoint num="6" id="812" /> +<TGConnectingPoint num="7" id="813" /> +<TGConnectingPoint num="8" id="814" /> +<TGConnectingPoint num="9" id="815" /> +<TGConnectingPoint num="10" id="816" /> +<TGConnectingPoint num="11" id="817" /> +<TGConnectingPoint num="12" id="818" /> +<TGConnectingPoint num="13" id="819" /> +<TGConnectingPoint num="14" id="820" /> +<TGConnectingPoint num="15" id="821" /> +<TGConnectingPoint num="16" id="822" /> +<TGConnectingPoint num="17" id="823" /> +<TGConnectingPoint num="18" id="824" /> +<TGConnectingPoint num="19" id="825" /> +<TGConnectingPoint num="20" id="826" /> +<TGConnectingPoint num="21" id="827" /> +<TGConnectingPoint num="22" id="828" /> +<TGConnectingPoint num="23" id="829" /> +<TGConnectingPoint num="24" id="830" /> +<TGConnectingPoint num="25" id="831" /> +<TGConnectingPoint num="26" id="832" /> +<TGConnectingPoint num="27" id="833" /> +<TGConnectingPoint num="28" id="834" /> +<TGConnectingPoint num="29" id="835" /> +<TGConnectingPoint num="30" id="836" /> +<TGConnectingPoint num="31" id="837" /> +<TGConnectingPoint num="32" id="838" /> +<TGConnectingPoint num="33" id="839" /> +<TGConnectingPoint num="34" id="840" /> +<TGConnectingPoint num="35" id="841" /> +<TGConnectingPoint num="36" id="842" /> +<TGConnectingPoint num="37" id="843" /> +<TGConnectingPoint num="38" id="844" /> +<TGConnectingPoint num="39" id="845" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="887" > +<cdparam x="53" y="1541" /> +<sizeparam width="388" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Message_Key_sending" /> +<TGConnectingPoint num="0" id="847" /> +<TGConnectingPoint num="1" id="848" /> +<TGConnectingPoint num="2" id="849" /> +<TGConnectingPoint num="3" id="850" /> +<TGConnectingPoint num="4" id="851" /> +<TGConnectingPoint num="5" id="852" /> +<TGConnectingPoint num="6" id="853" /> +<TGConnectingPoint num="7" id="854" /> +<TGConnectingPoint num="8" id="855" /> +<TGConnectingPoint num="9" id="856" /> +<TGConnectingPoint num="10" id="857" /> +<TGConnectingPoint num="11" id="858" /> +<TGConnectingPoint num="12" id="859" /> +<TGConnectingPoint num="13" id="860" /> +<TGConnectingPoint num="14" id="861" /> +<TGConnectingPoint num="15" id="862" /> +<TGConnectingPoint num="16" id="863" /> +<TGConnectingPoint num="17" id="864" /> +<TGConnectingPoint num="18" id="865" /> +<TGConnectingPoint num="19" id="866" /> +<TGConnectingPoint num="20" id="867" /> +<TGConnectingPoint num="21" id="868" /> +<TGConnectingPoint num="22" id="869" /> +<TGConnectingPoint num="23" id="870" /> +<TGConnectingPoint num="24" id="871" /> +<TGConnectingPoint num="25" id="872" /> +<TGConnectingPoint num="26" id="873" /> +<TGConnectingPoint num="27" id="874" /> +<TGConnectingPoint num="28" id="875" /> +<TGConnectingPoint num="29" id="876" /> +<TGConnectingPoint num="30" id="877" /> +<TGConnectingPoint num="31" id="878" /> +<TGConnectingPoint num="32" id="879" /> +<TGConnectingPoint num="33" id="880" /> +<TGConnectingPoint num="34" id="881" /> +<TGConnectingPoint num="35" id="882" /> +<TGConnectingPoint num="36" id="883" /> +<TGConnectingPoint num="37" id="884" /> +<TGConnectingPoint num="38" id="885" /> +<TGConnectingPoint num="39" id="886" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="928" > +<cdparam x="179" y="1375" /> +<sizeparam width="225" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Message_Key_receiving" /> +<TGConnectingPoint num="0" id="888" /> +<TGConnectingPoint num="1" id="889" /> +<TGConnectingPoint num="2" id="890" /> +<TGConnectingPoint num="3" id="891" /> +<TGConnectingPoint num="4" id="892" /> +<TGConnectingPoint num="5" id="893" /> +<TGConnectingPoint num="6" id="894" /> +<TGConnectingPoint num="7" id="895" /> +<TGConnectingPoint num="8" id="896" /> +<TGConnectingPoint num="9" id="897" /> +<TGConnectingPoint num="10" id="898" /> +<TGConnectingPoint num="11" id="899" /> +<TGConnectingPoint num="12" id="900" /> +<TGConnectingPoint num="13" id="901" /> +<TGConnectingPoint num="14" id="902" /> +<TGConnectingPoint num="15" id="903" /> +<TGConnectingPoint num="16" id="904" /> +<TGConnectingPoint num="17" id="905" /> +<TGConnectingPoint num="18" id="906" /> +<TGConnectingPoint num="19" id="907" /> +<TGConnectingPoint num="20" id="908" /> +<TGConnectingPoint num="21" id="909" /> +<TGConnectingPoint num="22" id="910" /> +<TGConnectingPoint num="23" id="911" /> +<TGConnectingPoint num="24" id="912" /> +<TGConnectingPoint num="25" id="913" /> +<TGConnectingPoint num="26" id="914" /> +<TGConnectingPoint num="27" id="915" /> +<TGConnectingPoint num="28" id="916" /> +<TGConnectingPoint num="29" id="917" /> +<TGConnectingPoint num="30" id="918" /> +<TGConnectingPoint num="31" id="919" /> +<TGConnectingPoint num="32" id="920" /> +<TGConnectingPoint num="33" id="921" /> +<TGConnectingPoint num="34" id="922" /> +<TGConnectingPoint num="35" id="923" /> +<TGConnectingPoint num="36" id="924" /> +<TGConnectingPoint num="37" id="925" /> +<TGConnectingPoint num="38" id="926" /> +<TGConnectingPoint num="39" id="927" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="969" > +<cdparam x="167" y="1231" /> +<sizeparam width="249" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="KDF_receiving" /> +<TGConnectingPoint num="0" id="929" /> +<TGConnectingPoint num="1" id="930" /> +<TGConnectingPoint num="2" id="931" /> +<TGConnectingPoint num="3" id="932" /> +<TGConnectingPoint num="4" id="933" /> +<TGConnectingPoint num="5" id="934" /> +<TGConnectingPoint num="6" id="935" /> +<TGConnectingPoint num="7" id="936" /> +<TGConnectingPoint num="8" id="937" /> +<TGConnectingPoint num="9" id="938" /> +<TGConnectingPoint num="10" id="939" /> +<TGConnectingPoint num="11" id="940" /> +<TGConnectingPoint num="12" id="941" /> +<TGConnectingPoint num="13" id="942" /> +<TGConnectingPoint num="14" id="943" /> +<TGConnectingPoint num="15" id="944" /> +<TGConnectingPoint num="16" id="945" /> +<TGConnectingPoint num="17" id="946" /> +<TGConnectingPoint num="18" id="947" /> +<TGConnectingPoint num="19" id="948" /> +<TGConnectingPoint num="20" id="949" /> +<TGConnectingPoint num="21" id="950" /> +<TGConnectingPoint num="22" id="951" /> +<TGConnectingPoint num="23" id="952" /> +<TGConnectingPoint num="24" id="953" /> +<TGConnectingPoint num="25" id="954" /> +<TGConnectingPoint num="26" id="955" /> +<TGConnectingPoint num="27" id="956" /> +<TGConnectingPoint num="28" id="957" /> +<TGConnectingPoint num="29" id="958" /> +<TGConnectingPoint num="30" id="959" /> +<TGConnectingPoint num="31" id="960" /> +<TGConnectingPoint num="32" id="961" /> +<TGConnectingPoint num="33" id="962" /> +<TGConnectingPoint num="34" id="963" /> +<TGConnectingPoint num="35" id="964" /> +<TGConnectingPoint num="36" id="965" /> +<TGConnectingPoint num="37" id="966" /> +<TGConnectingPoint num="38" id="967" /> +<TGConnectingPoint num="39" id="968" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1010" > +<cdparam x="183" y="1051" /> +<sizeparam width="293" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="DH_receiving" /> +<TGConnectingPoint num="0" id="970" /> +<TGConnectingPoint num="1" id="971" /> +<TGConnectingPoint num="2" id="972" /> +<TGConnectingPoint num="3" id="973" /> +<TGConnectingPoint num="4" id="974" /> +<TGConnectingPoint num="5" id="975" /> +<TGConnectingPoint num="6" id="976" /> +<TGConnectingPoint num="7" id="977" /> +<TGConnectingPoint num="8" id="978" /> +<TGConnectingPoint num="9" id="979" /> +<TGConnectingPoint num="10" id="980" /> +<TGConnectingPoint num="11" id="981" /> +<TGConnectingPoint num="12" id="982" /> +<TGConnectingPoint num="13" id="983" /> +<TGConnectingPoint num="14" id="984" /> +<TGConnectingPoint num="15" id="985" /> +<TGConnectingPoint num="16" id="986" /> +<TGConnectingPoint num="17" id="987" /> +<TGConnectingPoint num="18" id="988" /> +<TGConnectingPoint num="19" id="989" /> +<TGConnectingPoint num="20" id="990" /> +<TGConnectingPoint num="21" id="991" /> +<TGConnectingPoint num="22" id="992" /> +<TGConnectingPoint num="23" id="993" /> +<TGConnectingPoint num="24" id="994" /> +<TGConnectingPoint num="25" id="995" /> +<TGConnectingPoint num="26" id="996" /> +<TGConnectingPoint num="27" id="997" /> +<TGConnectingPoint num="28" id="998" /> +<TGConnectingPoint num="29" id="999" /> +<TGConnectingPoint num="30" id="1000" /> +<TGConnectingPoint num="31" id="1001" /> +<TGConnectingPoint num="32" id="1002" /> +<TGConnectingPoint num="33" id="1003" /> +<TGConnectingPoint num="34" id="1004" /> +<TGConnectingPoint num="35" id="1005" /> +<TGConnectingPoint num="36" id="1006" /> +<TGConnectingPoint num="37" id="1007" /> +<TGConnectingPoint num="38" id="1008" /> +<TGConnectingPoint num="39" id="1009" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1051" > +<cdparam x="236" y="809" /> +<sizeparam width="287" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="KDF_RK_sending" /> +<TGConnectingPoint num="0" id="1011" /> +<TGConnectingPoint num="1" id="1012" /> +<TGConnectingPoint num="2" id="1013" /> +<TGConnectingPoint num="3" id="1014" /> +<TGConnectingPoint num="4" id="1015" /> +<TGConnectingPoint num="5" id="1016" /> +<TGConnectingPoint num="6" id="1017" /> +<TGConnectingPoint num="7" id="1018" /> +<TGConnectingPoint num="8" id="1019" /> +<TGConnectingPoint num="9" id="1020" /> +<TGConnectingPoint num="10" id="1021" /> +<TGConnectingPoint num="11" id="1022" /> +<TGConnectingPoint num="12" id="1023" /> +<TGConnectingPoint num="13" id="1024" /> +<TGConnectingPoint num="14" id="1025" /> +<TGConnectingPoint num="15" id="1026" /> +<TGConnectingPoint num="16" id="1027" /> +<TGConnectingPoint num="17" id="1028" /> +<TGConnectingPoint num="18" id="1029" /> +<TGConnectingPoint num="19" id="1030" /> +<TGConnectingPoint num="20" id="1031" /> +<TGConnectingPoint num="21" id="1032" /> +<TGConnectingPoint num="22" id="1033" /> +<TGConnectingPoint num="23" id="1034" /> +<TGConnectingPoint num="24" id="1035" /> +<TGConnectingPoint num="25" id="1036" /> +<TGConnectingPoint num="26" id="1037" /> +<TGConnectingPoint num="27" id="1038" /> +<TGConnectingPoint num="28" id="1039" /> +<TGConnectingPoint num="29" id="1040" /> +<TGConnectingPoint num="30" id="1041" /> +<TGConnectingPoint num="31" id="1042" /> +<TGConnectingPoint num="32" id="1043" /> +<TGConnectingPoint num="33" id="1044" /> +<TGConnectingPoint num="34" id="1045" /> +<TGConnectingPoint num="35" id="1046" /> +<TGConnectingPoint num="36" id="1047" /> +<TGConnectingPoint num="37" id="1048" /> +<TGConnectingPoint num="38" id="1049" /> +<TGConnectingPoint num="39" id="1050" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1092" > +<cdparam x="183" y="626" /> +<sizeparam width="393" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="calculate_sending_DH" /> +<TGConnectingPoint num="0" id="1052" /> +<TGConnectingPoint num="1" id="1053" /> +<TGConnectingPoint num="2" id="1054" /> +<TGConnectingPoint num="3" id="1055" /> +<TGConnectingPoint num="4" id="1056" /> +<TGConnectingPoint num="5" id="1057" /> +<TGConnectingPoint num="6" id="1058" /> +<TGConnectingPoint num="7" id="1059" /> +<TGConnectingPoint num="8" id="1060" /> +<TGConnectingPoint num="9" id="1061" /> +<TGConnectingPoint num="10" id="1062" /> +<TGConnectingPoint num="11" id="1063" /> +<TGConnectingPoint num="12" id="1064" /> +<TGConnectingPoint num="13" id="1065" /> +<TGConnectingPoint num="14" id="1066" /> +<TGConnectingPoint num="15" id="1067" /> +<TGConnectingPoint num="16" id="1068" /> +<TGConnectingPoint num="17" id="1069" /> +<TGConnectingPoint num="18" id="1070" /> +<TGConnectingPoint num="19" id="1071" /> +<TGConnectingPoint num="20" id="1072" /> +<TGConnectingPoint num="21" id="1073" /> +<TGConnectingPoint num="22" id="1074" /> +<TGConnectingPoint num="23" id="1075" /> +<TGConnectingPoint num="24" id="1076" /> +<TGConnectingPoint num="25" id="1077" /> +<TGConnectingPoint num="26" id="1078" /> +<TGConnectingPoint num="27" id="1079" /> +<TGConnectingPoint num="28" id="1080" /> +<TGConnectingPoint num="29" id="1081" /> +<TGConnectingPoint num="30" id="1082" /> +<TGConnectingPoint num="31" id="1083" /> +<TGConnectingPoint num="32" id="1084" /> +<TGConnectingPoint num="33" id="1085" /> +<TGConnectingPoint num="34" id="1086" /> +<TGConnectingPoint num="35" id="1087" /> +<TGConnectingPoint num="36" id="1088" /> +<TGConnectingPoint num="37" id="1089" /> +<TGConnectingPoint num="38" id="1090" /> +<TGConnectingPoint num="39" id="1091" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1133" > +<cdparam x="249" y="487" /> +<sizeparam width="261" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="sending_message" /> +<TGConnectingPoint num="0" id="1093" /> +<TGConnectingPoint num="1" id="1094" /> +<TGConnectingPoint num="2" id="1095" /> +<TGConnectingPoint num="3" id="1096" /> +<TGConnectingPoint num="4" id="1097" /> +<TGConnectingPoint num="5" id="1098" /> +<TGConnectingPoint num="6" id="1099" /> +<TGConnectingPoint num="7" id="1100" /> +<TGConnectingPoint num="8" id="1101" /> +<TGConnectingPoint num="9" id="1102" /> +<TGConnectingPoint num="10" id="1103" /> +<TGConnectingPoint num="11" id="1104" /> +<TGConnectingPoint num="12" id="1105" /> +<TGConnectingPoint num="13" id="1106" /> +<TGConnectingPoint num="14" id="1107" /> +<TGConnectingPoint num="15" id="1108" /> +<TGConnectingPoint num="16" id="1109" /> +<TGConnectingPoint num="17" id="1110" /> +<TGConnectingPoint num="18" id="1111" /> +<TGConnectingPoint num="19" id="1112" /> +<TGConnectingPoint num="20" id="1113" /> +<TGConnectingPoint num="21" id="1114" /> +<TGConnectingPoint num="22" id="1115" /> +<TGConnectingPoint num="23" id="1116" /> +<TGConnectingPoint num="24" id="1117" /> +<TGConnectingPoint num="25" id="1118" /> +<TGConnectingPoint num="26" id="1119" /> +<TGConnectingPoint num="27" id="1120" /> +<TGConnectingPoint num="28" id="1121" /> +<TGConnectingPoint num="29" id="1122" /> +<TGConnectingPoint num="30" id="1123" /> +<TGConnectingPoint num="31" id="1124" /> +<TGConnectingPoint num="32" id="1125" /> +<TGConnectingPoint num="33" id="1126" /> +<TGConnectingPoint num="34" id="1127" /> +<TGConnectingPoint num="35" id="1128" /> +<TGConnectingPoint num="36" id="1129" /> +<TGConnectingPoint num="37" id="1130" /> +<TGConnectingPoint num="38" id="1131" /> +<TGConnectingPoint num="39" id="1132" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1144" > +<cdparam x="237" y="413" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Receive signal" value="chin(filler3)" /> +<TGConnectingPoint num="0" id="1134" /> +<TGConnectingPoint num="1" id="1135" /> +<TGConnectingPoint num="2" id="1136" /> +<TGConnectingPoint num="3" id="1137" /> +<TGConnectingPoint num="4" id="1138" /> +<TGConnectingPoint num="5" id="1139" /> +<TGConnectingPoint num="6" id="1140" /> +<TGConnectingPoint num="7" id="1141" /> +<TGConnectingPoint num="8" id="1142" /> +<TGConnectingPoint num="9" id="1143" /> +</COMPONENT> + +<COMPONENT type="5101" id="1146" > +<cdparam x="219" y="3433" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1145" /> +</COMPONENT> + +<COMPONENT type="5103" id="1157" > +<cdparam x="271" y="181" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Send signal" value="chout(filler)" /> +<TGConnectingPoint num="0" id="1147" /> +<TGConnectingPoint num="1" id="1148" /> +<TGConnectingPoint num="2" id="1149" /> +<TGConnectingPoint num="3" id="1150" /> +<TGConnectingPoint num="4" id="1151" /> +<TGConnectingPoint num="5" id="1152" /> +<TGConnectingPoint num="6" id="1153" /> +<TGConnectingPoint num="7" id="1154" /> +<TGConnectingPoint num="8" id="1155" /> +<TGConnectingPoint num="9" id="1156" /> +</COMPONENT> + +<COMPONENT type="5100" id="1159" > +<cdparam x="305" y="47" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1158" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="2500" minY="10" maxY="4000" > +<CONNECTOR type="5102" id="1166" > +<cdparam x="407" y="118" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1165" /> +<P1 x="407" y="118" id="2141" /> +<P2 x="406" y="137" id="1363" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1164" > +<father id="1166" num="0" /> +<cdparam x="358" y="130" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1160" /> +<TGConnectingPoint num="1" id="1161" /> +<TGConnectingPoint num="2" id="1162" /> +<TGConnectingPoint num="3" id="1163" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1173" > +<cdparam x="207" y="3397" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1172" /> +<P1 x="406" y="2436" id="1424" /> +<P2 x="406" y="2523" id="1378" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1171" > +<father id="1173" num="0" /> +<cdparam x="429" y="2457" /> +<sizeparam width="266" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1167" /> +<TGConnectingPoint num="1" id="1168" /> +<TGConnectingPoint num="2" id="1169" /> +<TGConnectingPoint num="3" id="1170" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="next_K_a = pk(next_Ks_a) " /> +<actions value="tmp1.Message = next_K_a.Key" /> +<actions value="tmp2.Message = curr_K_a.Key " /> +<actions value="filler6 = concat4(tmp1,tmp2, 1, a2_cipher)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1180" > +<cdparam x="140" y="2457" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1179" /> +<P1 x="406" y="1895" id="1506" /> +<P2 x="406" y="1922" id="1544" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1178" > +<father id="1180" num="0" /> +<cdparam x="162" y="2473" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1174" /> +<TGConnectingPoint num="1" id="1175" /> +<TGConnectingPoint num="2" id="1176" /> +<TGConnectingPoint num="3" id="1177" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1187" > +<cdparam x="129" y="2503" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1186" /> +<P1 x="406" y="2017" id="1542" /> +<P2 x="406" y="2078" id="1597" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1185" > +<father id="1187" num="0" /> +<cdparam x="420" y="2040" /> +<sizeparam width="255" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1181" /> +<TGConnectingPoint num="1" id="1182" /> +<TGConnectingPoint num="2" id="1183" /> +<TGConnectingPoint num="3" id="1184" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value=" next_Ks_a.Key = tmp3" /> +<actions value=" DH_sending = DH( next_K_b,next_Ks_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1194" > +<cdparam x="213" y="2462" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1193" /> +<P1 x="406" y="1952" id="1545" /> +<P2 x="406" y="1987" id="1541" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1192" > +<father id="1194" num="0" /> +<cdparam x="428" y="1970" /> +<sizeparam width="191" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1188" /> +<TGConnectingPoint num="1" id="1189" /> +<TGConnectingPoint num="2" id="1190" /> +<TGConnectingPoint num="3" id="1191" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="next_K_b.Key = filler5.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1201" > +<cdparam x="162" y="2361" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1200" /> +<P1 x="406" y="1755" id="1646" /> +<P2 x="406" y="1865" id="1501" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1199" > +<father id="1201" num="0" /> +<cdparam x="426" y="1777" /> +<sizeparam width="215" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1195" /> +<TGConnectingPoint num="1" id="1196" /> +<TGConnectingPoint num="2" id="1197" /> +<TGConnectingPoint num="3" id="1198" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = RK.Key" /> +<actions value="tmp2.Message = DH_receiving.Key" /> +<actions value="tmp4 = concat2(tmp1, tmp2) " /> +<actions value="tmp1=hash(tmp4)" /> +<actions value="CK_receiving.Key = tmp1.Message" /> +<actions value="RK.Key = CK_receiving.Key" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1208" > +<cdparam x="251" y="2129" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1207" /> +<P1 x="406" y="1600" id="1689" /> +<P2 x="406" y="1628" id="1637" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1206" > +<father id="1208" num="0" /> +<cdparam x="228" y="2148" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1202" /> +<TGConnectingPoint num="1" id="1203" /> +<TGConnectingPoint num="2" id="1204" /> +<TGConnectingPoint num="3" id="1205" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1215" > +<cdparam x="274" y="1973" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1214" /> +<P1 x="406" y="1512" id="1730" /> +<P2 x="406" y="1570" id="1684" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1213" > +<father id="1215" num="0" /> +<cdparam x="423" y="1548" /> +<sizeparam width="238" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1209" /> +<TGConnectingPoint num="1" id="1210" /> +<TGConnectingPoint num="2" id="1211" /> +<TGConnectingPoint num="3" id="1212" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="m = sdecrypt(m_cipher, CK_receiving) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1222" > +<cdparam x="272" y="1722" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1221" /> +<P1 x="406" y="1373" id="1777" /> +<P2 x="406" y="1396" id="1765" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1220" > +<father id="1222" num="0" /> +<cdparam x="266" y="1767" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1216" /> +<TGConnectingPoint num="1" id="1217" /> +<TGConnectingPoint num="2" id="1218" /> +<TGConnectingPoint num="3" id="1219" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1229" > +<cdparam x="272" y="1469" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1228" /> +<P1 x="406" y="1184" id="1834" /> +<P2 x="406" y="1283" id="1788" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1227" > +<father id="1229" num="0" /> +<cdparam x="428" y="1215" /> +<sizeparam width="258" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1223" /> +<TGConnectingPoint num="1" id="1224" /> +<TGConnectingPoint num="2" id="1225" /> +<TGConnectingPoint num="3" id="1226" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="next_K_a = pk(next_Ks_a) " /> +<actions value="tmp1.Message = next_K_a.Key" /> +<actions value="tmp2.Message = curr_K_a.Key " /> +<actions value="filler3 = concat4(tmp1,tmp2, 1, a_cipher)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1236" > +<cdparam x="261" y="1337" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1235" /> +<P1 x="406" y="1094" id="1889" /> +<P2 x="406" y="1154" id="1829" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1234" > +<father id="1236" num="0" /> +<cdparam x="427" y="1127" /> +<sizeparam width="226" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1230" /> +<TGConnectingPoint num="1" id="1231" /> +<TGConnectingPoint num="2" id="1232" /> +<TGConnectingPoint num="3" id="1233" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="a_cipher = sencrypt(a, CK_sending) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1243" > +<cdparam x="254" y="692" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1242" /> +<P1 x="406" y="627" id="1870" /> +<P2 x="406" y="688" id="2007" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1241" > +<father id="1243" num="0" /> +<cdparam x="428" y="652" /> +<sizeparam width="255" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1237" /> +<TGConnectingPoint num="1" id="1238" /> +<TGConnectingPoint num="2" id="1239" /> +<TGConnectingPoint num="3" id="1240" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value=" next_Ks_a.Key = tmp3" /> +<actions value=" DH_sending = DH( next_K_b,next_Ks_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1250" > +<cdparam x="369" y="597" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1249" /> +<P1 x="406" y="559" id="1873" /> +<P2 x="406" y="597" id="1869" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1248" > +<father id="1250" num="0" /> +<cdparam x="429" y="584" /> +<sizeparam width="191" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1244" /> +<TGConnectingPoint num="1" id="1245" /> +<TGConnectingPoint num="2" id="1246" /> +<TGConnectingPoint num="3" id="1247" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="next_K_b.Key = filler2.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1257" > +<cdparam x="380" y="515" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1256" /> +<P1 x="406" y="503" id="2053" /> +<P2 x="406" y="529" id="1872" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1255" > +<father id="1257" num="0" /> +<cdparam x="374" y="541" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1251" /> +<TGConnectingPoint num="1" id="1252" /> +<TGConnectingPoint num="2" id="1253" /> +<TGConnectingPoint num="3" id="1254" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1264" > +<cdparam x="341" y="997" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1263" /> +<P1 x="406" y="961" id="1930" /> +<P2 x="406" y="1064" id="1884" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1262" > +<father id="1264" num="0" /> +<cdparam x="427" y="1001" /> +<sizeparam width="206" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1258" /> +<TGConnectingPoint num="1" id="1259" /> +<TGConnectingPoint num="2" id="1260" /> +<TGConnectingPoint num="3" id="1261" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = CK_sending.Key" /> +<actions value="tmp4 = hash(tmp1)" /> +<actions value="CK_sending.Key = tmp4.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1271" > +<cdparam x="359" y="868" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1270" /> +<P1 x="406" y="851" id="1971" /> +<P2 x="406" y="931" id="1925" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1269" > +<father id="1271" num="0" /> +<cdparam x="431" y="879" /> +<sizeparam width="212" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1265" /> +<TGConnectingPoint num="1" id="1266" /> +<TGConnectingPoint num="2" id="1267" /> +<TGConnectingPoint num="3" id="1268" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = CK_receiving.Key" /> +<actions value="tmp4 = hash(tmp1)" /> +<actions value="CK_receiving.Key = tmp4.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1278" > +<cdparam x="377" y="734" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1277" /> +<P1 x="406" y="718" id="2012" /> +<P2 x="406" y="821" id="1966" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1276" > +<father id="1278" num="0" /> +<cdparam x="432" y="736" /> +<sizeparam width="212" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1272" /> +<TGConnectingPoint num="1" id="1273" /> +<TGConnectingPoint num="2" id="1274" /> +<TGConnectingPoint num="3" id="1275" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = DH_sending.Key" /> +<actions value="tmp2.Message = CK_receiving.Key" /> +<actions value="tmp4 = concat2(tmp2, tmp1) " /> +<actions value="tmp1 = hash(tmp4)" /> +<actions value="CK_sending.Key = tmp1.Message" /> +<actions value="RK.Key = CK_sending.Key" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1285" > +<cdparam x="396" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1284" /> +<P1 x="406" y="338" id="2094" /> +<P2 x="406" y="473" id="2048" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1283" > +<father id="1285" num="0" /> +<cdparam x="425" y="373" /> +<sizeparam width="215" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1279" /> +<TGConnectingPoint num="1" id="1280" /> +<TGConnectingPoint num="2" id="1281" /> +<TGConnectingPoint num="3" id="1282" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = RK.Key" /> +<actions value="tmp2.Message = DH_receiving.Key" /> +<actions value="tmp4 = concat2(tmp1, tmp2) " /> +<actions value="tmp1=hash(tmp4)" /> +<actions value="CK_receiving.Key = tmp1.Message" /> +<actions value="RK.Key = CK_receiving.Key" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1292" > +<cdparam x="403" y="265" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1291" /> +<P1 x="406" y="236" id="2130" /> +<P2 x="406" y="308" id="2089" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1290" > +<father id="1292" num="0" /> +<cdparam x="428" y="266" /> +<sizeparam width="249" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1286" /> +<TGConnectingPoint num="1" id="1287" /> +<TGConnectingPoint num="2" id="1288" /> +<TGConnectingPoint num="3" id="1289" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="curr_K_b.Key = filler.Message" /> +<actions value="DH_receiving = DH(curr_K_b, curr_Ks_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1299" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1298" /> +<P1 x="407" y="70" id="2151" /> +<P2 x="407" y="88" id="2140" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1297" > +<father id="1299" num="0" /> +<cdparam x="416" y="91" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1293" /> +<TGConnectingPoint num="1" id="1294" /> +<TGConnectingPoint num="2" id="1295" /> +<TGConnectingPoint num="3" id="1296" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1306" > +<cdparam x="408" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1305" /> +<P1 x="406" y="167" id="1364" /> +<P2 x="406" y="206" id="2129" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1304" > +<father id="1306" num="0" /> +<cdparam x="428" y="183" /> +<sizeparam width="150" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1300" /> +<TGConnectingPoint num="1" id="1301" /> +<TGConnectingPoint num="2" id="1302" /> +<TGConnectingPoint num="3" id="1303" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="curr_Ks_a.Key = tmp3" /> +<actions value="curr_K_a=pk(curr_Ks_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1313" > +<cdparam x="274" y="1618" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1312" /> +<P1 x="406" y="1313" id="1793" /> +<P2 x="406" y="1343" id="1776" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1311" > +<father id="1313" num="0" /> +<cdparam x="276" y="1663" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1307" /> +<TGConnectingPoint num="1" id="1308" /> +<TGConnectingPoint num="2" id="1309" /> +<TGConnectingPoint num="3" id="1310" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1320" > +<cdparam x="260" y="1843" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1319" /> +<P1 x="406" y="1426" id="1766" /> +<P2 x="406" y="1482" id="1725" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1318" > +<father id="1320" num="0" /> +<cdparam x="423" y="1453" /> +<sizeparam width="221" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1314" /> +<TGConnectingPoint num="1" id="1315" /> +<TGConnectingPoint num="2" id="1316" /> +<TGConnectingPoint num="3" id="1317" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="get3(filler4, tmp1, tmp2, m_cipher) " /> +<actions value="curr_K_b.Key = tmp1.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1327" > +<cdparam x="330" y="2129" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1326" /> +<P1 x="406" y="1658" id="1638" /> +<P2 x="406" y="1725" id="1641" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1325" > +<father id="1327" num="0" /> +<cdparam x="426" y="1677" /> +<sizeparam width="249" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1321" /> +<TGConnectingPoint num="1" id="1322" /> +<TGConnectingPoint num="2" id="1323" /> +<TGConnectingPoint num="3" id="1324" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="curr_Ks_a.Key = tmp3" /> +<actions value="curr_K_a = pk(curr_Ks_a) " /> +<actions value="DH_receiving = DH(curr_K_b, curr_Ks_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1334" > +<cdparam x="190" y="2437" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1333" /> +<P1 x="406" y="2108" id="1602" /> +<P2 x="406" y="2223" id="1556" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1332" > +<father id="1334" num="0" /> +<cdparam x="427" y="2128" /> +<sizeparam width="212" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1328" /> +<TGConnectingPoint num="1" id="1329" /> +<TGConnectingPoint num="2" id="1330" /> +<TGConnectingPoint num="3" id="1331" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = DH_sending.Key" /> +<actions value="tmp2.Message = CK_receiving.Key" /> +<actions value="tmp4 = concat2(tmp2, tmp1) " /> +<actions value="tmp1 = hash(tmp4)" /> +<actions value="CK_sending.Key = tmp1.Message" /> +<actions value="RK.Key = CK_sending.Key" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1341" > +<cdparam x="182" y="2577" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1340" /> +<P1 x="406" y="2253" id="1561" /> +<P2 x="406" y="2324" id="1460" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1339" > +<father id="1341" num="0" /> +<cdparam x="430" y="2276" /> +<sizeparam width="206" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="3000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1335" /> +<TGConnectingPoint num="1" id="1336" /> +<TGConnectingPoint num="2" id="1337" /> +<TGConnectingPoint num="3" id="1338" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = CK_sending.Key" /> +<actions value="tmp4 = hash(tmp1)" /> +<actions value="CK_sending.Key = tmp4.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1348" > +<cdparam x="247" y="3273" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1347" /> +<P1 x="406" y="2354" id="1465" /> +<P2 x="406" y="2406" id="1419" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1346" > +<father id="1348" num="0" /> +<cdparam x="426" y="2378" /> +<sizeparam width="242" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1342" /> +<TGConnectingPoint num="1" id="1343" /> +<TGConnectingPoint num="2" id="1344" /> +<TGConnectingPoint num="3" id="1345" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="a2_cipher = sencrypt(a2, CK_sending) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1355" > +<cdparam x="167" y="3554" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1354" /> +<P1 x="406" y="2553" id="1383" /> +<P2 x="406" y="2576" id="1366" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1353" > +<father id="1355" num="0" /> +<cdparam x="173" y="3585" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1349" /> +<TGConnectingPoint num="1" id="1350" /> +<TGConnectingPoint num="2" id="1351" /> +<TGConnectingPoint num="3" id="1352" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1362" > +<cdparam x="180" y="3647" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1361" /> +<P1 x="406" y="2606" id="1367" /> +<P2 x="405" y="2624" id="1681" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1360" > +<father id="1362" num="0" /> +<cdparam x="175" y="3672" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1356" /> +<TGConnectingPoint num="1" id="1357" /> +<TGConnectingPoint num="2" id="1358" /> +<TGConnectingPoint num="3" id="1359" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5108" id="1365" > +<cdparam x="325" y="142" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="1363" /> +<TGConnectingPoint num="1" id="1364" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="1376" > +<cdparam x="361" y="2581" /> +<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Send signal" value="chout(filler6)" /> +<TGConnectingPoint num="0" id="1366" /> +<TGConnectingPoint num="1" id="1367" /> +<TGConnectingPoint num="2" id="1368" /> +<TGConnectingPoint num="3" id="1369" /> +<TGConnectingPoint num="4" id="1370" /> +<TGConnectingPoint num="5" id="1371" /> +<TGConnectingPoint num="6" id="1372" /> +<TGConnectingPoint num="7" id="1373" /> +<TGConnectingPoint num="8" id="1374" /> +<TGConnectingPoint num="9" id="1375" /> +</COMPONENT> + +<COMPONENT type="5106" id="1417" > +<cdparam x="314" y="2523" /> +<sizeparam width="185" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Sending_Message_a2" /> +<TGConnectingPoint num="0" id="1377" /> +<TGConnectingPoint num="1" id="1378" /> +<TGConnectingPoint num="2" id="1379" /> +<TGConnectingPoint num="3" id="1380" /> +<TGConnectingPoint num="4" id="1381" /> +<TGConnectingPoint num="5" id="1382" /> +<TGConnectingPoint num="6" id="1383" /> +<TGConnectingPoint num="7" id="1384" /> +<TGConnectingPoint num="8" id="1385" /> +<TGConnectingPoint num="9" id="1386" /> +<TGConnectingPoint num="10" id="1387" /> +<TGConnectingPoint num="11" id="1388" /> +<TGConnectingPoint num="12" id="1389" /> +<TGConnectingPoint num="13" id="1390" /> +<TGConnectingPoint num="14" id="1391" /> +<TGConnectingPoint num="15" id="1392" /> +<TGConnectingPoint num="16" id="1393" /> +<TGConnectingPoint num="17" id="1394" /> +<TGConnectingPoint num="18" id="1395" /> +<TGConnectingPoint num="19" id="1396" /> +<TGConnectingPoint num="20" id="1397" /> +<TGConnectingPoint num="21" id="1398" /> +<TGConnectingPoint num="22" id="1399" /> +<TGConnectingPoint num="23" id="1400" /> +<TGConnectingPoint num="24" id="1401" /> +<TGConnectingPoint num="25" id="1402" /> +<TGConnectingPoint num="26" id="1403" /> +<TGConnectingPoint num="27" id="1404" /> +<TGConnectingPoint num="28" id="1405" /> +<TGConnectingPoint num="29" id="1406" /> +<TGConnectingPoint num="30" id="1407" /> +<TGConnectingPoint num="31" id="1408" /> +<TGConnectingPoint num="32" id="1409" /> +<TGConnectingPoint num="33" id="1410" /> +<TGConnectingPoint num="34" id="1411" /> +<TGConnectingPoint num="35" id="1412" /> +<TGConnectingPoint num="36" id="1413" /> +<TGConnectingPoint num="37" id="1414" /> +<TGConnectingPoint num="38" id="1415" /> +<TGConnectingPoint num="39" id="1416" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1458" > +<cdparam x="356" y="2406" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Encryption_2" /> +<TGConnectingPoint num="0" id="1418" /> +<TGConnectingPoint num="1" id="1419" /> +<TGConnectingPoint num="2" id="1420" /> +<TGConnectingPoint num="3" id="1421" /> +<TGConnectingPoint num="4" id="1422" /> +<TGConnectingPoint num="5" id="1423" /> +<TGConnectingPoint num="6" id="1424" /> +<TGConnectingPoint num="7" id="1425" /> +<TGConnectingPoint num="8" id="1426" /> +<TGConnectingPoint num="9" id="1427" /> +<TGConnectingPoint num="10" id="1428" /> +<TGConnectingPoint num="11" id="1429" /> +<TGConnectingPoint num="12" id="1430" /> +<TGConnectingPoint num="13" id="1431" /> +<TGConnectingPoint num="14" id="1432" /> +<TGConnectingPoint num="15" id="1433" /> +<TGConnectingPoint num="16" id="1434" /> +<TGConnectingPoint num="17" id="1435" /> +<TGConnectingPoint num="18" id="1436" /> +<TGConnectingPoint num="19" id="1437" /> +<TGConnectingPoint num="20" id="1438" /> +<TGConnectingPoint num="21" id="1439" /> +<TGConnectingPoint num="22" id="1440" /> +<TGConnectingPoint num="23" id="1441" /> +<TGConnectingPoint num="24" id="1442" /> +<TGConnectingPoint num="25" id="1443" /> +<TGConnectingPoint num="26" id="1444" /> +<TGConnectingPoint num="27" id="1445" /> +<TGConnectingPoint num="28" id="1446" /> +<TGConnectingPoint num="29" id="1447" /> +<TGConnectingPoint num="30" id="1448" /> +<TGConnectingPoint num="31" id="1449" /> +<TGConnectingPoint num="32" id="1450" /> +<TGConnectingPoint num="33" id="1451" /> +<TGConnectingPoint num="34" id="1452" /> +<TGConnectingPoint num="35" id="1453" /> +<TGConnectingPoint num="36" id="1454" /> +<TGConnectingPoint num="37" id="1455" /> +<TGConnectingPoint num="38" id="1456" /> +<TGConnectingPoint num="39" id="1457" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1499" > +<cdparam x="296" y="2324" /> +<sizeparam width="220" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Sending_Message_Key_2" /> +<TGConnectingPoint num="0" id="1459" /> +<TGConnectingPoint num="1" id="1460" /> +<TGConnectingPoint num="2" id="1461" /> +<TGConnectingPoint num="3" id="1462" /> +<TGConnectingPoint num="4" id="1463" /> +<TGConnectingPoint num="5" id="1464" /> +<TGConnectingPoint num="6" id="1465" /> +<TGConnectingPoint num="7" id="1466" /> +<TGConnectingPoint num="8" id="1467" /> +<TGConnectingPoint num="9" id="1468" /> +<TGConnectingPoint num="10" id="1469" /> +<TGConnectingPoint num="11" id="1470" /> +<TGConnectingPoint num="12" id="1471" /> +<TGConnectingPoint num="13" id="1472" /> +<TGConnectingPoint num="14" id="1473" /> +<TGConnectingPoint num="15" id="1474" /> +<TGConnectingPoint num="16" id="1475" /> +<TGConnectingPoint num="17" id="1476" /> +<TGConnectingPoint num="18" id="1477" /> +<TGConnectingPoint num="19" id="1478" /> +<TGConnectingPoint num="20" id="1479" /> +<TGConnectingPoint num="21" id="1480" /> +<TGConnectingPoint num="22" id="1481" /> +<TGConnectingPoint num="23" id="1482" /> +<TGConnectingPoint num="24" id="1483" /> +<TGConnectingPoint num="25" id="1484" /> +<TGConnectingPoint num="26" id="1485" /> +<TGConnectingPoint num="27" id="1486" /> +<TGConnectingPoint num="28" id="1487" /> +<TGConnectingPoint num="29" id="1488" /> +<TGConnectingPoint num="30" id="1489" /> +<TGConnectingPoint num="31" id="1490" /> +<TGConnectingPoint num="32" id="1491" /> +<TGConnectingPoint num="33" id="1492" /> +<TGConnectingPoint num="34" id="1493" /> +<TGConnectingPoint num="35" id="1494" /> +<TGConnectingPoint num="36" id="1495" /> +<TGConnectingPoint num="37" id="1496" /> +<TGConnectingPoint num="38" id="1497" /> +<TGConnectingPoint num="39" id="1498" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1540" > +<cdparam x="319" y="1865" /> +<sizeparam width="174" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="KDF_RK_receiving_2" /> +<TGConnectingPoint num="0" id="1500" /> +<TGConnectingPoint num="1" id="1501" /> +<TGConnectingPoint num="2" id="1502" /> +<TGConnectingPoint num="3" id="1503" /> +<TGConnectingPoint num="4" id="1504" /> +<TGConnectingPoint num="5" id="1505" /> +<TGConnectingPoint num="6" id="1506" /> +<TGConnectingPoint num="7" id="1507" /> +<TGConnectingPoint num="8" id="1508" /> +<TGConnectingPoint num="9" id="1509" /> +<TGConnectingPoint num="10" id="1510" /> +<TGConnectingPoint num="11" id="1511" /> +<TGConnectingPoint num="12" id="1512" /> +<TGConnectingPoint num="13" id="1513" /> +<TGConnectingPoint num="14" id="1514" /> +<TGConnectingPoint num="15" id="1515" /> +<TGConnectingPoint num="16" id="1516" /> +<TGConnectingPoint num="17" id="1517" /> +<TGConnectingPoint num="18" id="1518" /> +<TGConnectingPoint num="19" id="1519" /> +<TGConnectingPoint num="20" id="1520" /> +<TGConnectingPoint num="21" id="1521" /> +<TGConnectingPoint num="22" id="1522" /> +<TGConnectingPoint num="23" id="1523" /> +<TGConnectingPoint num="24" id="1524" /> +<TGConnectingPoint num="25" id="1525" /> +<TGConnectingPoint num="26" id="1526" /> +<TGConnectingPoint num="27" id="1527" /> +<TGConnectingPoint num="28" id="1528" /> +<TGConnectingPoint num="29" id="1529" /> +<TGConnectingPoint num="30" id="1530" /> +<TGConnectingPoint num="31" id="1531" /> +<TGConnectingPoint num="32" id="1532" /> +<TGConnectingPoint num="33" id="1533" /> +<TGConnectingPoint num="34" id="1534" /> +<TGConnectingPoint num="35" id="1535" /> +<TGConnectingPoint num="36" id="1536" /> +<TGConnectingPoint num="37" id="1537" /> +<TGConnectingPoint num="38" id="1538" /> +<TGConnectingPoint num="39" id="1539" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5108" id="1543" > +<cdparam x="325" y="1992" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="1541" /> +<TGConnectingPoint num="1" id="1542" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1554" > +<cdparam x="362" y="1927" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Receive signal" value="chin(filler5)" /> +<TGConnectingPoint num="0" id="1544" /> +<TGConnectingPoint num="1" id="1545" /> +<TGConnectingPoint num="2" id="1546" /> +<TGConnectingPoint num="3" id="1547" /> +<TGConnectingPoint num="4" id="1548" /> +<TGConnectingPoint num="5" id="1549" /> +<TGConnectingPoint num="6" id="1550" /> +<TGConnectingPoint num="7" id="1551" /> +<TGConnectingPoint num="8" id="1552" /> +<TGConnectingPoint num="9" id="1553" /> +</COMPONENT> + +<COMPONENT type="5106" id="1595" > +<cdparam x="320" y="2223" /> +<sizeparam width="172" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="KDF_RK_sending_2" /> +<TGConnectingPoint num="0" id="1555" /> +<TGConnectingPoint num="1" id="1556" /> +<TGConnectingPoint num="2" id="1557" /> +<TGConnectingPoint num="3" id="1558" /> +<TGConnectingPoint num="4" id="1559" /> +<TGConnectingPoint num="5" id="1560" /> +<TGConnectingPoint num="6" id="1561" /> +<TGConnectingPoint num="7" id="1562" /> +<TGConnectingPoint num="8" id="1563" /> +<TGConnectingPoint num="9" id="1564" /> +<TGConnectingPoint num="10" id="1565" /> +<TGConnectingPoint num="11" id="1566" /> +<TGConnectingPoint num="12" id="1567" /> +<TGConnectingPoint num="13" id="1568" /> +<TGConnectingPoint num="14" id="1569" /> +<TGConnectingPoint num="15" id="1570" /> +<TGConnectingPoint num="16" id="1571" /> +<TGConnectingPoint num="17" id="1572" /> +<TGConnectingPoint num="18" id="1573" /> +<TGConnectingPoint num="19" id="1574" /> +<TGConnectingPoint num="20" id="1575" /> +<TGConnectingPoint num="21" id="1576" /> +<TGConnectingPoint num="22" id="1577" /> +<TGConnectingPoint num="23" id="1578" /> +<TGConnectingPoint num="24" id="1579" /> +<TGConnectingPoint num="25" id="1580" /> +<TGConnectingPoint num="26" id="1581" /> +<TGConnectingPoint num="27" id="1582" /> +<TGConnectingPoint num="28" id="1583" /> +<TGConnectingPoint num="29" id="1584" /> +<TGConnectingPoint num="30" id="1585" /> +<TGConnectingPoint num="31" id="1586" /> +<TGConnectingPoint num="32" id="1587" /> +<TGConnectingPoint num="33" id="1588" /> +<TGConnectingPoint num="34" id="1589" /> +<TGConnectingPoint num="35" id="1590" /> +<TGConnectingPoint num="36" id="1591" /> +<TGConnectingPoint num="37" id="1592" /> +<TGConnectingPoint num="38" id="1593" /> +<TGConnectingPoint num="39" id="1594" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1636" > +<cdparam x="337" y="2078" /> +<sizeparam width="138" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="DH_sending_2" /> +<TGConnectingPoint num="0" id="1596" /> +<TGConnectingPoint num="1" id="1597" /> +<TGConnectingPoint num="2" id="1598" /> +<TGConnectingPoint num="3" id="1599" /> +<TGConnectingPoint num="4" id="1600" /> +<TGConnectingPoint num="5" id="1601" /> +<TGConnectingPoint num="6" id="1602" /> +<TGConnectingPoint num="7" id="1603" /> +<TGConnectingPoint num="8" id="1604" /> +<TGConnectingPoint num="9" id="1605" /> +<TGConnectingPoint num="10" id="1606" /> +<TGConnectingPoint num="11" id="1607" /> +<TGConnectingPoint num="12" id="1608" /> +<TGConnectingPoint num="13" id="1609" /> +<TGConnectingPoint num="14" id="1610" /> +<TGConnectingPoint num="15" id="1611" /> +<TGConnectingPoint num="16" id="1612" /> +<TGConnectingPoint num="17" id="1613" /> +<TGConnectingPoint num="18" id="1614" /> +<TGConnectingPoint num="19" id="1615" /> +<TGConnectingPoint num="20" id="1616" /> +<TGConnectingPoint num="21" id="1617" /> +<TGConnectingPoint num="22" id="1618" /> +<TGConnectingPoint num="23" id="1619" /> +<TGConnectingPoint num="24" id="1620" /> +<TGConnectingPoint num="25" id="1621" /> +<TGConnectingPoint num="26" id="1622" /> +<TGConnectingPoint num="27" id="1623" /> +<TGConnectingPoint num="28" id="1624" /> +<TGConnectingPoint num="29" id="1625" /> +<TGConnectingPoint num="30" id="1626" /> +<TGConnectingPoint num="31" id="1627" /> +<TGConnectingPoint num="32" id="1628" /> +<TGConnectingPoint num="33" id="1629" /> +<TGConnectingPoint num="34" id="1630" /> +<TGConnectingPoint num="35" id="1631" /> +<TGConnectingPoint num="36" id="1632" /> +<TGConnectingPoint num="37" id="1633" /> +<TGConnectingPoint num="38" id="1634" /> +<TGConnectingPoint num="39" id="1635" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5108" id="1639" > +<cdparam x="325" y="1633" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="1637" /> +<TGConnectingPoint num="1" id="1638" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1680" > +<cdparam x="333" y="1725" /> +<sizeparam width="146" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="DH_Receiving_2" /> +<TGConnectingPoint num="0" id="1640" /> +<TGConnectingPoint num="1" id="1641" /> +<TGConnectingPoint num="2" id="1642" /> +<TGConnectingPoint num="3" id="1643" /> +<TGConnectingPoint num="4" id="1644" /> +<TGConnectingPoint num="5" id="1645" /> +<TGConnectingPoint num="6" id="1646" /> +<TGConnectingPoint num="7" id="1647" /> +<TGConnectingPoint num="8" id="1648" /> +<TGConnectingPoint num="9" id="1649" /> +<TGConnectingPoint num="10" id="1650" /> +<TGConnectingPoint num="11" id="1651" /> +<TGConnectingPoint num="12" id="1652" /> +<TGConnectingPoint num="13" id="1653" /> +<TGConnectingPoint num="14" id="1654" /> +<TGConnectingPoint num="15" id="1655" /> +<TGConnectingPoint num="16" id="1656" /> +<TGConnectingPoint num="17" id="1657" /> +<TGConnectingPoint num="18" id="1658" /> +<TGConnectingPoint num="19" id="1659" /> +<TGConnectingPoint num="20" id="1660" /> +<TGConnectingPoint num="21" id="1661" /> +<TGConnectingPoint num="22" id="1662" /> +<TGConnectingPoint num="23" id="1663" /> +<TGConnectingPoint num="24" id="1664" /> +<TGConnectingPoint num="25" id="1665" /> +<TGConnectingPoint num="26" id="1666" /> +<TGConnectingPoint num="27" id="1667" /> +<TGConnectingPoint num="28" id="1668" /> +<TGConnectingPoint num="29" id="1669" /> +<TGConnectingPoint num="30" id="1670" /> +<TGConnectingPoint num="31" id="1671" /> +<TGConnectingPoint num="32" id="1672" /> +<TGConnectingPoint num="33" id="1673" /> +<TGConnectingPoint num="34" id="1674" /> +<TGConnectingPoint num="35" id="1675" /> +<TGConnectingPoint num="36" id="1676" /> +<TGConnectingPoint num="37" id="1677" /> +<TGConnectingPoint num="38" id="1678" /> +<TGConnectingPoint num="39" id="1679" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5101" id="1682" > +<cdparam x="395" y="2629" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1681" /> +</COMPONENT> + +<COMPONENT type="5106" id="1723" > +<cdparam x="353" y="1570" /> +<sizeparam width="106" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Decryption" /> +<TGConnectingPoint num="0" id="1683" /> +<TGConnectingPoint num="1" id="1684" /> +<TGConnectingPoint num="2" id="1685" /> +<TGConnectingPoint num="3" id="1686" /> +<TGConnectingPoint num="4" id="1687" /> +<TGConnectingPoint num="5" id="1688" /> +<TGConnectingPoint num="6" id="1689" /> +<TGConnectingPoint num="7" id="1690" /> +<TGConnectingPoint num="8" id="1691" /> +<TGConnectingPoint num="9" id="1692" /> +<TGConnectingPoint num="10" id="1693" /> +<TGConnectingPoint num="11" id="1694" /> +<TGConnectingPoint num="12" id="1695" /> +<TGConnectingPoint num="13" id="1696" /> +<TGConnectingPoint num="14" id="1697" /> +<TGConnectingPoint num="15" id="1698" /> +<TGConnectingPoint num="16" id="1699" /> +<TGConnectingPoint num="17" id="1700" /> +<TGConnectingPoint num="18" id="1701" /> +<TGConnectingPoint num="19" id="1702" /> +<TGConnectingPoint num="20" id="1703" /> +<TGConnectingPoint num="21" id="1704" /> +<TGConnectingPoint num="22" id="1705" /> +<TGConnectingPoint num="23" id="1706" /> +<TGConnectingPoint num="24" id="1707" /> +<TGConnectingPoint num="25" id="1708" /> +<TGConnectingPoint num="26" id="1709" /> +<TGConnectingPoint num="27" id="1710" /> +<TGConnectingPoint num="28" id="1711" /> +<TGConnectingPoint num="29" id="1712" /> +<TGConnectingPoint num="30" id="1713" /> +<TGConnectingPoint num="31" id="1714" /> +<TGConnectingPoint num="32" id="1715" /> +<TGConnectingPoint num="33" id="1716" /> +<TGConnectingPoint num="34" id="1717" /> +<TGConnectingPoint num="35" id="1718" /> +<TGConnectingPoint num="36" id="1719" /> +<TGConnectingPoint num="37" id="1720" /> +<TGConnectingPoint num="38" id="1721" /> +<TGConnectingPoint num="39" id="1722" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1764" > +<cdparam x="313" y="1482" /> +<sizeparam width="187" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Receiving_message_b" /> +<TGConnectingPoint num="0" id="1724" /> +<TGConnectingPoint num="1" id="1725" /> +<TGConnectingPoint num="2" id="1726" /> +<TGConnectingPoint num="3" id="1727" /> +<TGConnectingPoint num="4" id="1728" /> +<TGConnectingPoint num="5" id="1729" /> +<TGConnectingPoint num="6" id="1730" /> +<TGConnectingPoint num="7" id="1731" /> +<TGConnectingPoint num="8" id="1732" /> +<TGConnectingPoint num="9" id="1733" /> +<TGConnectingPoint num="10" id="1734" /> +<TGConnectingPoint num="11" id="1735" /> +<TGConnectingPoint num="12" id="1736" /> +<TGConnectingPoint num="13" id="1737" /> +<TGConnectingPoint num="14" id="1738" /> +<TGConnectingPoint num="15" id="1739" /> +<TGConnectingPoint num="16" id="1740" /> +<TGConnectingPoint num="17" id="1741" /> +<TGConnectingPoint num="18" id="1742" /> +<TGConnectingPoint num="19" id="1743" /> +<TGConnectingPoint num="20" id="1744" /> +<TGConnectingPoint num="21" id="1745" /> +<TGConnectingPoint num="22" id="1746" /> +<TGConnectingPoint num="23" id="1747" /> +<TGConnectingPoint num="24" id="1748" /> +<TGConnectingPoint num="25" id="1749" /> +<TGConnectingPoint num="26" id="1750" /> +<TGConnectingPoint num="27" id="1751" /> +<TGConnectingPoint num="28" id="1752" /> +<TGConnectingPoint num="29" id="1753" /> +<TGConnectingPoint num="30" id="1754" /> +<TGConnectingPoint num="31" id="1755" /> +<TGConnectingPoint num="32" id="1756" /> +<TGConnectingPoint num="33" id="1757" /> +<TGConnectingPoint num="34" id="1758" /> +<TGConnectingPoint num="35" id="1759" /> +<TGConnectingPoint num="36" id="1760" /> +<TGConnectingPoint num="37" id="1761" /> +<TGConnectingPoint num="38" id="1762" /> +<TGConnectingPoint num="39" id="1763" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1775" > +<cdparam x="362" y="1401" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Receive signal" value="chin(filler4)" /> +<TGConnectingPoint num="0" id="1765" /> +<TGConnectingPoint num="1" id="1766" /> +<TGConnectingPoint num="2" id="1767" /> +<TGConnectingPoint num="3" id="1768" /> +<TGConnectingPoint num="4" id="1769" /> +<TGConnectingPoint num="5" id="1770" /> +<TGConnectingPoint num="6" id="1771" /> +<TGConnectingPoint num="7" id="1772" /> +<TGConnectingPoint num="8" id="1773" /> +<TGConnectingPoint num="9" id="1774" /> +</COMPONENT> + +<COMPONENT type="5103" id="1786" > +<cdparam x="361" y="1348" /> +<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Send signal" value="chout(filler3)" /> +<TGConnectingPoint num="0" id="1776" /> +<TGConnectingPoint num="1" id="1777" /> +<TGConnectingPoint num="2" id="1778" /> +<TGConnectingPoint num="3" id="1779" /> +<TGConnectingPoint num="4" id="1780" /> +<TGConnectingPoint num="5" id="1781" /> +<TGConnectingPoint num="6" id="1782" /> +<TGConnectingPoint num="7" id="1783" /> +<TGConnectingPoint num="8" id="1784" /> +<TGConnectingPoint num="9" id="1785" /> +</COMPONENT> + +<COMPONENT type="5106" id="1827" > +<cdparam x="316" y="1283" /> +<sizeparam width="180" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Sending_message_a" /> +<TGConnectingPoint num="0" id="1787" /> +<TGConnectingPoint num="1" id="1788" /> +<TGConnectingPoint num="2" id="1789" /> +<TGConnectingPoint num="3" id="1790" /> +<TGConnectingPoint num="4" id="1791" /> +<TGConnectingPoint num="5" id="1792" /> +<TGConnectingPoint num="6" id="1793" /> +<TGConnectingPoint num="7" id="1794" /> +<TGConnectingPoint num="8" id="1795" /> +<TGConnectingPoint num="9" id="1796" /> +<TGConnectingPoint num="10" id="1797" /> +<TGConnectingPoint num="11" id="1798" /> +<TGConnectingPoint num="12" id="1799" /> +<TGConnectingPoint num="13" id="1800" /> +<TGConnectingPoint num="14" id="1801" /> +<TGConnectingPoint num="15" id="1802" /> +<TGConnectingPoint num="16" id="1803" /> +<TGConnectingPoint num="17" id="1804" /> +<TGConnectingPoint num="18" id="1805" /> +<TGConnectingPoint num="19" id="1806" /> +<TGConnectingPoint num="20" id="1807" /> +<TGConnectingPoint num="21" id="1808" /> +<TGConnectingPoint num="22" id="1809" /> +<TGConnectingPoint num="23" id="1810" /> +<TGConnectingPoint num="24" id="1811" /> +<TGConnectingPoint num="25" id="1812" /> +<TGConnectingPoint num="26" id="1813" /> +<TGConnectingPoint num="27" id="1814" /> +<TGConnectingPoint num="28" id="1815" /> +<TGConnectingPoint num="29" id="1816" /> +<TGConnectingPoint num="30" id="1817" /> +<TGConnectingPoint num="31" id="1818" /> +<TGConnectingPoint num="32" id="1819" /> +<TGConnectingPoint num="33" id="1820" /> +<TGConnectingPoint num="34" id="1821" /> +<TGConnectingPoint num="35" id="1822" /> +<TGConnectingPoint num="36" id="1823" /> +<TGConnectingPoint num="37" id="1824" /> +<TGConnectingPoint num="38" id="1825" /> +<TGConnectingPoint num="39" id="1826" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1868" > +<cdparam x="352" y="1154" /> +<sizeparam width="108" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Encryption" /> +<TGConnectingPoint num="0" id="1828" /> +<TGConnectingPoint num="1" id="1829" /> +<TGConnectingPoint num="2" id="1830" /> +<TGConnectingPoint num="3" id="1831" /> +<TGConnectingPoint num="4" id="1832" /> +<TGConnectingPoint num="5" id="1833" /> +<TGConnectingPoint num="6" id="1834" /> +<TGConnectingPoint num="7" id="1835" /> +<TGConnectingPoint num="8" id="1836" /> +<TGConnectingPoint num="9" id="1837" /> +<TGConnectingPoint num="10" id="1838" /> +<TGConnectingPoint num="11" id="1839" /> +<TGConnectingPoint num="12" id="1840" /> +<TGConnectingPoint num="13" id="1841" /> +<TGConnectingPoint num="14" id="1842" /> +<TGConnectingPoint num="15" id="1843" /> +<TGConnectingPoint num="16" id="1844" /> +<TGConnectingPoint num="17" id="1845" /> +<TGConnectingPoint num="18" id="1846" /> +<TGConnectingPoint num="19" id="1847" /> +<TGConnectingPoint num="20" id="1848" /> +<TGConnectingPoint num="21" id="1849" /> +<TGConnectingPoint num="22" id="1850" /> +<TGConnectingPoint num="23" id="1851" /> +<TGConnectingPoint num="24" id="1852" /> +<TGConnectingPoint num="25" id="1853" /> +<TGConnectingPoint num="26" id="1854" /> +<TGConnectingPoint num="27" id="1855" /> +<TGConnectingPoint num="28" id="1856" /> +<TGConnectingPoint num="29" id="1857" /> +<TGConnectingPoint num="30" id="1858" /> +<TGConnectingPoint num="31" id="1859" /> +<TGConnectingPoint num="32" id="1860" /> +<TGConnectingPoint num="33" id="1861" /> +<TGConnectingPoint num="34" id="1862" /> +<TGConnectingPoint num="35" id="1863" /> +<TGConnectingPoint num="36" id="1864" /> +<TGConnectingPoint num="37" id="1865" /> +<TGConnectingPoint num="38" id="1866" /> +<TGConnectingPoint num="39" id="1867" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5108" id="1871" > +<cdparam x="325" y="602" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="1869" /> +<TGConnectingPoint num="1" id="1870" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1882" > +<cdparam x="362" y="534" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Receive signal" value="chin(filler2)" /> +<TGConnectingPoint num="0" id="1872" /> +<TGConnectingPoint num="1" id="1873" /> +<TGConnectingPoint num="2" id="1874" /> +<TGConnectingPoint num="3" id="1875" /> +<TGConnectingPoint num="4" id="1876" /> +<TGConnectingPoint num="5" id="1877" /> +<TGConnectingPoint num="6" id="1878" /> +<TGConnectingPoint num="7" id="1879" /> +<TGConnectingPoint num="8" id="1880" /> +<TGConnectingPoint num="9" id="1881" /> +</COMPONENT> + +<COMPONENT type="5106" id="1923" > +<cdparam x="279" y="1064" /> +<sizeparam width="254" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="calculate_sending_message_Key" /> +<TGConnectingPoint num="0" id="1883" /> +<TGConnectingPoint num="1" id="1884" /> +<TGConnectingPoint num="2" id="1885" /> +<TGConnectingPoint num="3" id="1886" /> +<TGConnectingPoint num="4" id="1887" /> +<TGConnectingPoint num="5" id="1888" /> +<TGConnectingPoint num="6" id="1889" /> +<TGConnectingPoint num="7" id="1890" /> +<TGConnectingPoint num="8" id="1891" /> +<TGConnectingPoint num="9" id="1892" /> +<TGConnectingPoint num="10" id="1893" /> +<TGConnectingPoint num="11" id="1894" /> +<TGConnectingPoint num="12" id="1895" /> +<TGConnectingPoint num="13" id="1896" /> +<TGConnectingPoint num="14" id="1897" /> +<TGConnectingPoint num="15" id="1898" /> +<TGConnectingPoint num="16" id="1899" /> +<TGConnectingPoint num="17" id="1900" /> +<TGConnectingPoint num="18" id="1901" /> +<TGConnectingPoint num="19" id="1902" /> +<TGConnectingPoint num="20" id="1903" /> +<TGConnectingPoint num="21" id="1904" /> +<TGConnectingPoint num="22" id="1905" /> +<TGConnectingPoint num="23" id="1906" /> +<TGConnectingPoint num="24" id="1907" /> +<TGConnectingPoint num="25" id="1908" /> +<TGConnectingPoint num="26" id="1909" /> +<TGConnectingPoint num="27" id="1910" /> +<TGConnectingPoint num="28" id="1911" /> +<TGConnectingPoint num="29" id="1912" /> +<TGConnectingPoint num="30" id="1913" /> +<TGConnectingPoint num="31" id="1914" /> +<TGConnectingPoint num="32" id="1915" /> +<TGConnectingPoint num="33" id="1916" /> +<TGConnectingPoint num="34" id="1917" /> +<TGConnectingPoint num="35" id="1918" /> +<TGConnectingPoint num="36" id="1919" /> +<TGConnectingPoint num="37" id="1920" /> +<TGConnectingPoint num="38" id="1921" /> +<TGConnectingPoint num="39" id="1922" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1964" > +<cdparam x="266" y="931" /> +<sizeparam width="281" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="calculate_receiving_message_Key" /> +<TGConnectingPoint num="0" id="1924" /> +<TGConnectingPoint num="1" id="1925" /> +<TGConnectingPoint num="2" id="1926" /> +<TGConnectingPoint num="3" id="1927" /> +<TGConnectingPoint num="4" id="1928" /> +<TGConnectingPoint num="5" id="1929" /> +<TGConnectingPoint num="6" id="1930" /> +<TGConnectingPoint num="7" id="1931" /> +<TGConnectingPoint num="8" id="1932" /> +<TGConnectingPoint num="9" id="1933" /> +<TGConnectingPoint num="10" id="1934" /> +<TGConnectingPoint num="11" id="1935" /> +<TGConnectingPoint num="12" id="1936" /> +<TGConnectingPoint num="13" id="1937" /> +<TGConnectingPoint num="14" id="1938" /> +<TGConnectingPoint num="15" id="1939" /> +<TGConnectingPoint num="16" id="1940" /> +<TGConnectingPoint num="17" id="1941" /> +<TGConnectingPoint num="18" id="1942" /> +<TGConnectingPoint num="19" id="1943" /> +<TGConnectingPoint num="20" id="1944" /> +<TGConnectingPoint num="21" id="1945" /> +<TGConnectingPoint num="22" id="1946" /> +<TGConnectingPoint num="23" id="1947" /> +<TGConnectingPoint num="24" id="1948" /> +<TGConnectingPoint num="25" id="1949" /> +<TGConnectingPoint num="26" id="1950" /> +<TGConnectingPoint num="27" id="1951" /> +<TGConnectingPoint num="28" id="1952" /> +<TGConnectingPoint num="29" id="1953" /> +<TGConnectingPoint num="30" id="1954" /> +<TGConnectingPoint num="31" id="1955" /> +<TGConnectingPoint num="32" id="1956" /> +<TGConnectingPoint num="33" id="1957" /> +<TGConnectingPoint num="34" id="1958" /> +<TGConnectingPoint num="35" id="1959" /> +<TGConnectingPoint num="36" id="1960" /> +<TGConnectingPoint num="37" id="1961" /> +<TGConnectingPoint num="38" id="1962" /> +<TGConnectingPoint num="39" id="1963" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2005" > +<cdparam x="329" y="821" /> +<sizeparam width="154" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="KDF_RK_sending" /> +<TGConnectingPoint num="0" id="1965" /> +<TGConnectingPoint num="1" id="1966" /> +<TGConnectingPoint num="2" id="1967" /> +<TGConnectingPoint num="3" id="1968" /> +<TGConnectingPoint num="4" id="1969" /> +<TGConnectingPoint num="5" id="1970" /> +<TGConnectingPoint num="6" id="1971" /> +<TGConnectingPoint num="7" id="1972" /> +<TGConnectingPoint num="8" id="1973" /> +<TGConnectingPoint num="9" id="1974" /> +<TGConnectingPoint num="10" id="1975" /> +<TGConnectingPoint num="11" id="1976" /> +<TGConnectingPoint num="12" id="1977" /> +<TGConnectingPoint num="13" id="1978" /> +<TGConnectingPoint num="14" id="1979" /> +<TGConnectingPoint num="15" id="1980" /> +<TGConnectingPoint num="16" id="1981" /> +<TGConnectingPoint num="17" id="1982" /> +<TGConnectingPoint num="18" id="1983" /> +<TGConnectingPoint num="19" id="1984" /> +<TGConnectingPoint num="20" id="1985" /> +<TGConnectingPoint num="21" id="1986" /> +<TGConnectingPoint num="22" id="1987" /> +<TGConnectingPoint num="23" id="1988" /> +<TGConnectingPoint num="24" id="1989" /> +<TGConnectingPoint num="25" id="1990" /> +<TGConnectingPoint num="26" id="1991" /> +<TGConnectingPoint num="27" id="1992" /> +<TGConnectingPoint num="28" id="1993" /> +<TGConnectingPoint num="29" id="1994" /> +<TGConnectingPoint num="30" id="1995" /> +<TGConnectingPoint num="31" id="1996" /> +<TGConnectingPoint num="32" id="1997" /> +<TGConnectingPoint num="33" id="1998" /> +<TGConnectingPoint num="34" id="1999" /> +<TGConnectingPoint num="35" id="2000" /> +<TGConnectingPoint num="36" id="2001" /> +<TGConnectingPoint num="37" id="2002" /> +<TGConnectingPoint num="38" id="2003" /> +<TGConnectingPoint num="39" id="2004" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2046" > +<cdparam x="309" y="688" /> +<sizeparam width="194" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="calculate_sending_DH" /> +<TGConnectingPoint num="0" id="2006" /> +<TGConnectingPoint num="1" id="2007" /> +<TGConnectingPoint num="2" id="2008" /> +<TGConnectingPoint num="3" id="2009" /> +<TGConnectingPoint num="4" id="2010" /> +<TGConnectingPoint num="5" id="2011" /> +<TGConnectingPoint num="6" id="2012" /> +<TGConnectingPoint num="7" id="2013" /> +<TGConnectingPoint num="8" id="2014" /> +<TGConnectingPoint num="9" id="2015" /> +<TGConnectingPoint num="10" id="2016" /> +<TGConnectingPoint num="11" id="2017" /> +<TGConnectingPoint num="12" id="2018" /> +<TGConnectingPoint num="13" id="2019" /> +<TGConnectingPoint num="14" id="2020" /> +<TGConnectingPoint num="15" id="2021" /> +<TGConnectingPoint num="16" id="2022" /> +<TGConnectingPoint num="17" id="2023" /> +<TGConnectingPoint num="18" id="2024" /> +<TGConnectingPoint num="19" id="2025" /> +<TGConnectingPoint num="20" id="2026" /> +<TGConnectingPoint num="21" id="2027" /> +<TGConnectingPoint num="22" id="2028" /> +<TGConnectingPoint num="23" id="2029" /> +<TGConnectingPoint num="24" id="2030" /> +<TGConnectingPoint num="25" id="2031" /> +<TGConnectingPoint num="26" id="2032" /> +<TGConnectingPoint num="27" id="2033" /> +<TGConnectingPoint num="28" id="2034" /> +<TGConnectingPoint num="29" id="2035" /> +<TGConnectingPoint num="30" id="2036" /> +<TGConnectingPoint num="31" id="2037" /> +<TGConnectingPoint num="32" id="2038" /> +<TGConnectingPoint num="33" id="2039" /> +<TGConnectingPoint num="34" id="2040" /> +<TGConnectingPoint num="35" id="2041" /> +<TGConnectingPoint num="36" id="2042" /> +<TGConnectingPoint num="37" id="2043" /> +<TGConnectingPoint num="38" id="2044" /> +<TGConnectingPoint num="39" id="2045" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2087" > +<cdparam x="324" y="473" /> +<sizeparam width="165" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="KDF_RK_receiving" /> +<TGConnectingPoint num="0" id="2047" /> +<TGConnectingPoint num="1" id="2048" /> +<TGConnectingPoint num="2" id="2049" /> +<TGConnectingPoint num="3" id="2050" /> +<TGConnectingPoint num="4" id="2051" /> +<TGConnectingPoint num="5" id="2052" /> +<TGConnectingPoint num="6" id="2053" /> +<TGConnectingPoint num="7" id="2054" /> +<TGConnectingPoint num="8" id="2055" /> +<TGConnectingPoint num="9" id="2056" /> +<TGConnectingPoint num="10" id="2057" /> +<TGConnectingPoint num="11" id="2058" /> +<TGConnectingPoint num="12" id="2059" /> +<TGConnectingPoint num="13" id="2060" /> +<TGConnectingPoint num="14" id="2061" /> +<TGConnectingPoint num="15" id="2062" /> +<TGConnectingPoint num="16" id="2063" /> +<TGConnectingPoint num="17" id="2064" /> +<TGConnectingPoint num="18" id="2065" /> +<TGConnectingPoint num="19" id="2066" /> +<TGConnectingPoint num="20" id="2067" /> +<TGConnectingPoint num="21" id="2068" /> +<TGConnectingPoint num="22" id="2069" /> +<TGConnectingPoint num="23" id="2070" /> +<TGConnectingPoint num="24" id="2071" /> +<TGConnectingPoint num="25" id="2072" /> +<TGConnectingPoint num="26" id="2073" /> +<TGConnectingPoint num="27" id="2074" /> +<TGConnectingPoint num="28" id="2075" /> +<TGConnectingPoint num="29" id="2076" /> +<TGConnectingPoint num="30" id="2077" /> +<TGConnectingPoint num="31" id="2078" /> +<TGConnectingPoint num="32" id="2079" /> +<TGConnectingPoint num="33" id="2080" /> +<TGConnectingPoint num="34" id="2081" /> +<TGConnectingPoint num="35" id="2082" /> +<TGConnectingPoint num="36" id="2083" /> +<TGConnectingPoint num="37" id="2084" /> +<TGConnectingPoint num="38" id="2085" /> +<TGConnectingPoint num="39" id="2086" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="2128" > +<cdparam x="320" y="308" /> +<sizeparam width="173" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="State" value="Calculate_receiv_DH" /> +<TGConnectingPoint num="0" id="2088" /> +<TGConnectingPoint num="1" id="2089" /> +<TGConnectingPoint num="2" id="2090" /> +<TGConnectingPoint num="3" id="2091" /> +<TGConnectingPoint num="4" id="2092" /> +<TGConnectingPoint num="5" id="2093" /> +<TGConnectingPoint num="6" id="2094" /> +<TGConnectingPoint num="7" id="2095" /> +<TGConnectingPoint num="8" id="2096" /> +<TGConnectingPoint num="9" id="2097" /> +<TGConnectingPoint num="10" id="2098" /> +<TGConnectingPoint num="11" id="2099" /> +<TGConnectingPoint num="12" id="2100" /> +<TGConnectingPoint num="13" id="2101" /> +<TGConnectingPoint num="14" id="2102" /> +<TGConnectingPoint num="15" id="2103" /> +<TGConnectingPoint num="16" id="2104" /> +<TGConnectingPoint num="17" id="2105" /> +<TGConnectingPoint num="18" id="2106" /> +<TGConnectingPoint num="19" id="2107" /> +<TGConnectingPoint num="20" id="2108" /> +<TGConnectingPoint num="21" id="2109" /> +<TGConnectingPoint num="22" id="2110" /> +<TGConnectingPoint num="23" id="2111" /> +<TGConnectingPoint num="24" id="2112" /> +<TGConnectingPoint num="25" id="2113" /> +<TGConnectingPoint num="26" id="2114" /> +<TGConnectingPoint num="27" id="2115" /> +<TGConnectingPoint num="28" id="2116" /> +<TGConnectingPoint num="29" id="2117" /> +<TGConnectingPoint num="30" id="2118" /> +<TGConnectingPoint num="31" id="2119" /> +<TGConnectingPoint num="32" id="2120" /> +<TGConnectingPoint num="33" id="2121" /> +<TGConnectingPoint num="34" id="2122" /> +<TGConnectingPoint num="35" id="2123" /> +<TGConnectingPoint num="36" id="2124" /> +<TGConnectingPoint num="37" id="2125" /> +<TGConnectingPoint num="38" id="2126" /> +<TGConnectingPoint num="39" id="2127" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="2139" > +<cdparam x="366" y="211" /> +<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Receive signal" value="chin(filler)" /> +<TGConnectingPoint num="0" id="2129" /> +<TGConnectingPoint num="1" id="2130" /> +<TGConnectingPoint num="2" id="2131" /> +<TGConnectingPoint num="3" id="2132" /> +<TGConnectingPoint num="4" id="2133" /> +<TGConnectingPoint num="5" id="2134" /> +<TGConnectingPoint num="6" id="2135" /> +<TGConnectingPoint num="7" id="2136" /> +<TGConnectingPoint num="8" id="2137" /> +<TGConnectingPoint num="9" id="2138" /> +</COMPONENT> + +<COMPONENT type="5103" id="2150" > +<cdparam x="292" y="93" /> +<sizeparam width="230" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="Send signal" value="chout(requestBobPublicKeyBundle)" /> +<TGConnectingPoint num="0" id="2140" /> +<TGConnectingPoint num="1" id="2141" /> +<TGConnectingPoint num="2" id="2142" /> +<TGConnectingPoint num="3" id="2143" /> +<TGConnectingPoint num="4" id="2144" /> +<TGConnectingPoint num="5" id="2145" /> +<TGConnectingPoint num="6" id="2146" /> +<TGConnectingPoint num="7" id="2147" /> +<TGConnectingPoint num="8" id="2148" /> +<TGConnectingPoint num="9" id="2149" /> +</COMPONENT> + +<COMPONENT type="5100" id="2152" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="4000" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2151" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Server" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="2159" > +<cdparam x="409" y="158" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2158" /> +<P1 x="407" y="117" id="2302" /> +<P2 x="407" y="136" id="2261" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2157" > +<father id="2159" num="0" /> +<cdparam x="407" y="187" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2153" /> +<TGConnectingPoint num="1" id="2154" /> +<TGConnectingPoint num="2" id="2155" /> +<TGConnectingPoint num="3" id="2156" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2166" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2165" /> +<P1 x="407" y="70" id="2312" /> +<P2 x="407" y="87" id="2301" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2164" > +<father id="2166" num="0" /> +<cdparam x="416" y="103" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2160" /> +<TGConnectingPoint num="1" id="2161" /> +<TGConnectingPoint num="2" id="2162" /> +<TGConnectingPoint num="3" id="2163" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2173" > +<cdparam x="395" y="270" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2172" /> +<P1 x="407" y="166" id="2266" /> +<P2 x="407" y="186" id="2249" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2171" > +<father id="2173" num="0" /> +<cdparam x="398" y="298" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2167" /> +<TGConnectingPoint num="1" id="2168" /> +<TGConnectingPoint num="2" id="2169" /> +<TGConnectingPoint num="3" id="2170" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2180" > +<cdparam x="391" y="366" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2179" /> +<P1 x="407" y="216" id="2250" /> +<P2 x="407" y="251" id="2209" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2178" > +<father id="2180" num="0" /> +<cdparam x="394" y="377" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2174" /> +<TGConnectingPoint num="1" id="2175" /> +<TGConnectingPoint num="2" id="2176" /> +<TGConnectingPoint num="3" id="2177" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2187" > +<cdparam x="396" y="458" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2186" /> +<P1 x="407" y="281" id="2214" /> +<P2 x="407" y="309" id="2197" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2185" > +<father id="2187" num="0" /> +<cdparam x="396" y="497" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2181" /> +<TGConnectingPoint num="1" id="2182" /> +<TGConnectingPoint num="2" id="2183" /> +<TGConnectingPoint num="3" id="2184" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="2194" > +<cdparam x="389" y="553" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="2193" /> +<P1 x="407" y="339" id="2198" /> +<P2 x="407" y="362" id="2195" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="2192" > +<father id="2194" num="0" /> +<cdparam x="395" y="596" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="2188" /> +<TGConnectingPoint num="1" id="2189" /> +<TGConnectingPoint num="2" id="2190" /> +<TGConnectingPoint num="3" id="2191" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5101" id="2196" > +<cdparam x="397" y="367" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="2195" /> +</COMPONENT> + +<COMPONENT type="5103" id="2207" > +<cdparam x="366" y="314" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="chout(filler)" /> +<TGConnectingPoint num="0" id="2197" /> +<TGConnectingPoint num="1" id="2198" /> +<TGConnectingPoint num="2" id="2199" /> +<TGConnectingPoint num="3" id="2200" /> +<TGConnectingPoint num="4" id="2201" /> +<TGConnectingPoint num="5" id="2202" /> +<TGConnectingPoint num="6" id="2203" /> +<TGConnectingPoint num="7" id="2204" /> +<TGConnectingPoint num="8" id="2205" /> +<TGConnectingPoint num="9" id="2206" /> +</COMPONENT> + +<COMPONENT type="5106" id="2248" > +<cdparam x="314" y="251" /> +<sizeparam width="186" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="Receive_Alice_request" /> +<TGConnectingPoint num="0" id="2208" /> +<TGConnectingPoint num="1" id="2209" /> +<TGConnectingPoint num="2" id="2210" /> +<TGConnectingPoint num="3" id="2211" /> +<TGConnectingPoint num="4" id="2212" /> +<TGConnectingPoint num="5" id="2213" /> +<TGConnectingPoint num="6" id="2214" /> +<TGConnectingPoint num="7" id="2215" /> +<TGConnectingPoint num="8" id="2216" /> +<TGConnectingPoint num="9" id="2217" /> +<TGConnectingPoint num="10" id="2218" /> +<TGConnectingPoint num="11" id="2219" /> +<TGConnectingPoint num="12" id="2220" /> +<TGConnectingPoint num="13" id="2221" /> +<TGConnectingPoint num="14" id="2222" /> +<TGConnectingPoint num="15" id="2223" /> +<TGConnectingPoint num="16" id="2224" /> +<TGConnectingPoint num="17" id="2225" /> +<TGConnectingPoint num="18" id="2226" /> +<TGConnectingPoint num="19" id="2227" /> +<TGConnectingPoint num="20" id="2228" /> +<TGConnectingPoint num="21" id="2229" /> +<TGConnectingPoint num="22" id="2230" /> +<TGConnectingPoint num="23" id="2231" /> +<TGConnectingPoint num="24" id="2232" /> +<TGConnectingPoint num="25" id="2233" /> +<TGConnectingPoint num="26" id="2234" /> +<TGConnectingPoint num="27" id="2235" /> +<TGConnectingPoint num="28" id="2236" /> +<TGConnectingPoint num="29" id="2237" /> +<TGConnectingPoint num="30" id="2238" /> +<TGConnectingPoint num="31" id="2239" /> +<TGConnectingPoint num="32" id="2240" /> +<TGConnectingPoint num="33" id="2241" /> +<TGConnectingPoint num="34" id="2242" /> +<TGConnectingPoint num="35" id="2243" /> +<TGConnectingPoint num="36" id="2244" /> +<TGConnectingPoint num="37" id="2245" /> +<TGConnectingPoint num="38" id="2246" /> +<TGConnectingPoint num="39" id="2247" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="2259" > +<cdparam x="293" y="191" /> +<sizeparam width="228" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="chin(requestBobPublicKeyBundle)" /> +<TGConnectingPoint num="0" id="2249" /> +<TGConnectingPoint num="1" id="2250" /> +<TGConnectingPoint num="2" id="2251" /> +<TGConnectingPoint num="3" id="2252" /> +<TGConnectingPoint num="4" id="2253" /> +<TGConnectingPoint num="5" id="2254" /> +<TGConnectingPoint num="6" id="2255" /> +<TGConnectingPoint num="7" id="2256" /> +<TGConnectingPoint num="8" id="2257" /> +<TGConnectingPoint num="9" id="2258" /> +</COMPONENT> + +<COMPONENT type="5106" id="2300" > +<cdparam x="376" y="136" /> +<sizeparam width="63" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="Store" /> +<TGConnectingPoint num="0" id="2260" /> +<TGConnectingPoint num="1" id="2261" /> +<TGConnectingPoint num="2" id="2262" /> +<TGConnectingPoint num="3" id="2263" /> +<TGConnectingPoint num="4" id="2264" /> +<TGConnectingPoint num="5" id="2265" /> +<TGConnectingPoint num="6" id="2266" /> +<TGConnectingPoint num="7" id="2267" /> +<TGConnectingPoint num="8" id="2268" /> +<TGConnectingPoint num="9" id="2269" /> +<TGConnectingPoint num="10" id="2270" /> +<TGConnectingPoint num="11" id="2271" /> +<TGConnectingPoint num="12" id="2272" /> +<TGConnectingPoint num="13" id="2273" /> +<TGConnectingPoint num="14" id="2274" /> +<TGConnectingPoint num="15" id="2275" /> +<TGConnectingPoint num="16" id="2276" /> +<TGConnectingPoint num="17" id="2277" /> +<TGConnectingPoint num="18" id="2278" /> +<TGConnectingPoint num="19" id="2279" /> +<TGConnectingPoint num="20" id="2280" /> +<TGConnectingPoint num="21" id="2281" /> +<TGConnectingPoint num="22" id="2282" /> +<TGConnectingPoint num="23" id="2283" /> +<TGConnectingPoint num="24" id="2284" /> +<TGConnectingPoint num="25" id="2285" /> +<TGConnectingPoint num="26" id="2286" /> +<TGConnectingPoint num="27" id="2287" /> +<TGConnectingPoint num="28" id="2288" /> +<TGConnectingPoint num="29" id="2289" /> +<TGConnectingPoint num="30" id="2290" /> +<TGConnectingPoint num="31" id="2291" /> +<TGConnectingPoint num="32" id="2292" /> +<TGConnectingPoint num="33" id="2293" /> +<TGConnectingPoint num="34" id="2294" /> +<TGConnectingPoint num="35" id="2295" /> +<TGConnectingPoint num="36" id="2296" /> +<TGConnectingPoint num="37" id="2297" /> +<TGConnectingPoint num="38" id="2298" /> +<TGConnectingPoint num="39" id="2299" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="2311" > +<cdparam x="367" y="92" /> +<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="chin(filler)" /> +<TGConnectingPoint num="0" id="2301" /> +<TGConnectingPoint num="1" id="2302" /> +<TGConnectingPoint num="2" id="2303" /> +<TGConnectingPoint num="3" id="2304" /> +<TGConnectingPoint num="4" id="2305" /> +<TGConnectingPoint num="5" id="2306" /> +<TGConnectingPoint num="6" id="2307" /> +<TGConnectingPoint num="7" id="2308" /> +<TGConnectingPoint num="8" id="2309" /> +<TGConnectingPoint num="9" id="2310" /> +</COMPONENT> + +<COMPONENT type="5100" id="2313" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="2312" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/modeling/SysMLSec/X3DH.xml b/modeling/SysMLSec/X3DH.xml new file mode 100644 index 0000000000000000000000000000000000000000..0e5b59af18986436476b264317fff8de29975941 --- /dev/null +++ b/modeling/SysMLSec/X3DH.xml @@ -0,0 +1,2767 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<TURTLEGMODELING version="1.0beta"> + +<Modeling type="AVATAR Design" nameTab="protocol" > +<AVATARBlockDiagramPanel name="Block Diagram" minX="10" maxX="2500" minY="10" maxY="1500" > +<MainCode value="void __user_init() {"/> +<MainCode value="}"/> +<Optimized value="true" /> +<Validated value="" /> +<Ignored value="" /> + +<CONNECTOR type="5002" id="6" > +<cdparam x="136" y="201" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="" /> +<TGConnectingPoint num="0" id="3" /> +<TGConnectingPoint num="1" id="4" /> +<TGConnectingPoint num="2" id="5" /> +<P1 x="136" y="176" id="127" /> +<P2 x="136" y="299" id="120" /> +<Point x="83" y="176" /> +<Point x="83" y="299" /> +<AutomaticDrawing data="true" /> +<extraparam> +<isd value="in chin(Message m)" /> +<oso value="out chout(Message m)" /> +<FIFOType asynchronous="false" size="1" blocking="false" private="false" broadcast="false" lossy="false" /> +</extraparam> +</CONNECTOR><SUBCOMPONENT type="-1" id="1" > +<father id="6" num="0" /> +<cdparam x="83" y="176" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> +<SUBCOMPONENT type="-1" id="2" > +<father id="6" num="1" /> +<cdparam x="83" y="299" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="point " value="null" /> +</SUBCOMPONENT> + +<COMPONENT type="5003" id="15" > +<cdparam x="417" y="556" /> +<sizeparam width="250" height="63" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Message" /> +<TGConnectingPoint num="0" id="7" /> +<TGConnectingPoint num="1" id="8" /> +<TGConnectingPoint num="2" id="9" /> +<TGConnectingPoint num="3" id="10" /> +<TGConnectingPoint num="4" id="11" /> +<TGConnectingPoint num="5" id="12" /> +<TGConnectingPoint num="6" id="13" /> +<TGConnectingPoint num="7" id="14" /> +<extraparam> +<Attribute access="0" id="Message" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="302" id="32" > +<cdparam x="136" y="639" /> +<sizeparam width="405" height="162" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Proverif Pragma" value="#InitialSystemKnowledge Bob.IK_b Alice.preload_IK_b +#InitialSystemKnowledge Alice.IK_a Bob.preload_IK_a +#PrivatePublicKeys Alice IKs_a IK_a +#PrivatePublicKeys Bob IKs_b IK_b +#PrivatePublicKeys Bob SPKs_b SPK_b +#Confidentiality Bob.m +#Authenticity Bob.Alice_Binding_OK.m Alice.MDecrypted.m +#InitialSystemKnowledge Bob.MSG Alice.MSG +" /> +<TGConnectingPoint num="0" id="16" /> +<TGConnectingPoint num="1" id="17" /> +<TGConnectingPoint num="2" id="18" /> +<TGConnectingPoint num="3" id="19" /> +<TGConnectingPoint num="4" id="20" /> +<TGConnectingPoint num="5" id="21" /> +<TGConnectingPoint num="6" id="22" /> +<TGConnectingPoint num="7" id="23" /> +<TGConnectingPoint num="8" id="24" /> +<TGConnectingPoint num="9" id="25" /> +<TGConnectingPoint num="10" id="26" /> +<TGConnectingPoint num="11" id="27" /> +<TGConnectingPoint num="12" id="28" /> +<TGConnectingPoint num="13" id="29" /> +<TGConnectingPoint num="14" id="30" /> +<TGConnectingPoint num="15" id="31" /> +<extraparam> +<Line value="#InitialSystemKnowledge Bob.IK_b Alice.preload_IK_b" /> +<Line value="#InitialSystemKnowledge Alice.IK_a Bob.preload_IK_a" /> +<Line value="#PrivatePublicKeys Alice IKs_a IK_a" /> +<Line value="#PrivatePublicKeys Bob IKs_b IK_b" /> +<Line value="#PrivatePublicKeys Bob SPKs_b SPK_b" /> +<Line value="#Confidentiality Bob.m" /> +<Line value="#Authenticity Bob.Alice_Binding_OK.m Alice.MDecrypted.m" /> +<Line value="#InitialSystemKnowledge Bob.MSG Alice.MSG" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5003" id="41" > +<cdparam x="136" y="555" /> +<sizeparam width="250" height="64" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="DataType0" value="Key" /> +<TGConnectingPoint num="0" id="33" /> +<TGConnectingPoint num="1" id="34" /> +<TGConnectingPoint num="2" id="35" /> +<TGConnectingPoint num="3" id="36" /> +<TGConnectingPoint num="4" id="37" /> +<TGConnectingPoint num="5" id="38" /> +<TGConnectingPoint num="6" id="39" /> +<TGConnectingPoint num="7" id="40" /> +<extraparam> +<Attribute access="0" id="Key" value="" type="8" typeOther="" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5000" id="141" > +<cdparam x="136" y="53" /> +<sizeparam width="530" height="492" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Block0" value="System" /> +<TGConnectingPoint num="0" id="117" /> +<TGConnectingPoint num="1" id="118" /> +<TGConnectingPoint num="2" id="119" /> +<TGConnectingPoint num="3" id="120" /> +<TGConnectingPoint num="4" id="121" /> +<TGConnectingPoint num="5" id="122" /> +<TGConnectingPoint num="6" id="123" /> +<TGConnectingPoint num="7" id="124" /> +<TGConnectingPoint num="8" id="125" /> +<TGConnectingPoint num="9" id="126" /> +<TGConnectingPoint num="10" id="127" /> +<TGConnectingPoint num="11" id="128" /> +<TGConnectingPoint num="12" id="129" /> +<TGConnectingPoint num="13" id="130" /> +<TGConnectingPoint num="14" id="131" /> +<TGConnectingPoint num="15" id="132" /> +<TGConnectingPoint num="16" id="133" /> +<TGConnectingPoint num="17" id="134" /> +<TGConnectingPoint num="18" id="135" /> +<TGConnectingPoint num="19" id="136" /> +<TGConnectingPoint num="20" id="137" /> +<TGConnectingPoint num="21" id="138" /> +<TGConnectingPoint num="22" id="139" /> +<TGConnectingPoint num="23" id="140" /> +<extraparam> +<CryptoBlock value="false" /> +<Signal value="in chin(Message m)" attached="true" /> +<Signal value="out chout(Message m)" attached="true" /> +</extraparam> +</COMPONENT> +<SUBCOMPONENT type="5000" id="66" > +<father id="141" num="0" /> +<cdparam x="148" y="119" /> +<sizeparam width="248" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="282" minY="0" maxY="292" /> +<infoparam name="Block0" value="Server" /> +<TGConnectingPoint num="0" id="42" /> +<TGConnectingPoint num="1" id="43" /> +<TGConnectingPoint num="2" id="44" /> +<TGConnectingPoint num="3" id="45" /> +<TGConnectingPoint num="4" id="46" /> +<TGConnectingPoint num="5" id="47" /> +<TGConnectingPoint num="6" id="48" /> +<TGConnectingPoint num="7" id="49" /> +<TGConnectingPoint num="8" id="50" /> +<TGConnectingPoint num="9" id="51" /> +<TGConnectingPoint num="10" id="52" /> +<TGConnectingPoint num="11" id="53" /> +<TGConnectingPoint num="12" id="54" /> +<TGConnectingPoint num="13" id="55" /> +<TGConnectingPoint num="14" id="56" /> +<TGConnectingPoint num="15" id="57" /> +<TGConnectingPoint num="16" id="58" /> +<TGConnectingPoint num="17" id="59" /> +<TGConnectingPoint num="18" id="60" /> +<TGConnectingPoint num="19" id="61" /> +<TGConnectingPoint num="20" id="62" /> +<TGConnectingPoint num="21" id="63" /> +<TGConnectingPoint num="22" id="64" /> +<TGConnectingPoint num="23" id="65" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="filler" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="requestBobPublicKeyBundle" value="" type="5" typeOther="Message" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message hash(Message msg)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="91" > +<father id="141" num="1" /> +<cdparam x="147" y="334" /> +<sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="280" minY="0" maxY="292" /> +<infoparam name="Block1" value="Alice" /> +<TGConnectingPoint num="0" id="67" /> +<TGConnectingPoint num="1" id="68" /> +<TGConnectingPoint num="2" id="69" /> +<TGConnectingPoint num="3" id="70" /> +<TGConnectingPoint num="4" id="71" /> +<TGConnectingPoint num="5" id="72" /> +<TGConnectingPoint num="6" id="73" /> +<TGConnectingPoint num="7" id="74" /> +<TGConnectingPoint num="8" id="75" /> +<TGConnectingPoint num="9" id="76" /> +<TGConnectingPoint num="10" id="77" /> +<TGConnectingPoint num="11" id="78" /> +<TGConnectingPoint num="12" id="79" /> +<TGConnectingPoint num="13" id="80" /> +<TGConnectingPoint num="14" id="81" /> +<TGConnectingPoint num="15" id="82" /> +<TGConnectingPoint num="16" id="83" /> +<TGConnectingPoint num="17" id="84" /> +<TGConnectingPoint num="18" id="85" /> +<TGConnectingPoint num="19" id="86" /> +<TGConnectingPoint num="20" id="87" /> +<TGConnectingPoint num="21" id="88" /> +<TGConnectingPoint num="22" id="89" /> +<TGConnectingPoint num="23" id="90" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="IK_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="IKs_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="AD" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH1" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH2" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH3" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="SK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="requestBobPublicKeyBundle" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="IK_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="SPK_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="sign" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="b" value="" type="4" typeOther="" /> +<Attribute access="0" id="ECs_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="EC_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="tmp3" value="" type="8" typeOther="" /> +<Attribute access="0" id="tmp4" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="preload_IK_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="MSG" value="" type="8" typeOther="" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message hash(Message msg)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +</extraparam> +</SUBCOMPONENT> +<SUBCOMPONENT type="5000" id="116" > +<father id="141" num="2" /> +<cdparam x="406" y="119" /> +<sizeparam width="250" height="414" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="0" maxX="280" minY="0" maxY="78" /> +<infoparam name="Block0" value="Bob" /> +<TGConnectingPoint num="0" id="92" /> +<TGConnectingPoint num="1" id="93" /> +<TGConnectingPoint num="2" id="94" /> +<TGConnectingPoint num="3" id="95" /> +<TGConnectingPoint num="4" id="96" /> +<TGConnectingPoint num="5" id="97" /> +<TGConnectingPoint num="6" id="98" /> +<TGConnectingPoint num="7" id="99" /> +<TGConnectingPoint num="8" id="100" /> +<TGConnectingPoint num="9" id="101" /> +<TGConnectingPoint num="10" id="102" /> +<TGConnectingPoint num="11" id="103" /> +<TGConnectingPoint num="12" id="104" /> +<TGConnectingPoint num="13" id="105" /> +<TGConnectingPoint num="14" id="106" /> +<TGConnectingPoint num="15" id="107" /> +<TGConnectingPoint num="16" id="108" /> +<TGConnectingPoint num="17" id="109" /> +<TGConnectingPoint num="18" id="110" /> +<TGConnectingPoint num="19" id="111" /> +<TGConnectingPoint num="20" id="112" /> +<TGConnectingPoint num="21" id="113" /> +<TGConnectingPoint num="22" id="114" /> +<TGConnectingPoint num="23" id="115" /> +<extraparam> +<CryptoBlock value="true" /> +<Attribute access="0" id="IK_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="SPK_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="SPKs_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="IKs_b" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="AD" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="DH1" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH2" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="DH3" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="SK" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="filler" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="filler2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp1" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp2" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="tmp3" value="" type="8" typeOther="" /> +<Attribute access="0" id="tmp4" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="AD_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="EC_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="IK_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="AD_uncipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="m_cipher" value="" type="5" typeOther="Message" /> +<Attribute access="0" id="preload_IK_a" value="" type="5" typeOther="Key" /> +<Attribute access="0" id="MSG" value="" type="8" typeOther="" /> +<Method value="Message aencrypt(Message msg, Key k)" /> +<Method value="Message adecrypt(Message msg, Key k)" /> +<Method value="Key pk(Key k)" /> +<Method value="Message sign(Message msg, Key k)" /> +<Method value="bool verifySign(Message msg1, Message sig, Key k)" /> +<Method value="Message cert(Key k, Message msg)" /> +<Method value="bool verifyCert(Message cert, Key k)" /> +<Method value="Key getpk(Message cert)" /> +<Method value="Message sencrypt(Message msg, Key k)" /> +<Method value="Message sdecrypt(Message msg, Key k)" /> +<Method value="Message hash(Message msg)" /> +<Method value="Message MAC(Message msg, Key k)" /> +<Method value="bool verifyMAC(Message msg, Key k, Message macmsg)" /> +<Method value="Message concat2(Message msg1, Message msg2)" /> +<Method value="Message concat3(Message msg1, Message msg2, Message msg3)" /> +<Method value="Message concat4(Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="get2(Message msg, Message msg1, Message msg2)" /> +<Method value="get3(Message msg, Message msg1, Message msg2, Message msg3)" /> +<Method value="get4(Message msg, Message msg1, Message msg2, Message msg3, Message msg4)" /> +<Method value="Key DH(Key pubK, Key privK)" /> +</extraparam> +</SUBCOMPONENT> + + +</AVATARBlockDiagramPanel> + +<AVATARStateMachineDiagramPanel name="System" minX="10" maxX="2500" minY="10" maxY="1500" > +<COMPONENT type="5100" id="143" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="142" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Bob" minX="10" maxX="2500" minY="10" maxY="2000" > +<CONNECTOR type="5102" id="150" > +<cdparam x="626" y="1387" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="149" /> +<P1 x="452" y="1088" id="229" /> +<P2 x="452" y="1111" id="239" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="148" > +<father id="150" num="0" /> +<cdparam x="625" y="1427" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="144" /> +<TGConnectingPoint num="1" id="145" /> +<TGConnectingPoint num="2" id="146" /> +<TGConnectingPoint num="3" id="147" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="157" > +<cdparam x="422" y="921" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="156" /> +<P1 x="407" y="812" id="329" /> +<P2 x="407" y="866" id="283" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="155" > +<father id="157" num="0" /> +<cdparam x="435" y="845" /> +<sizeparam width="249" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="151" /> +<TGConnectingPoint num="1" id="152" /> +<TGConnectingPoint num="2" id="153" /> +<TGConnectingPoint num="3" id="154" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="AD_uncipher = sdecrypt(AD_cipher, SK) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="164" > +<cdparam x="450" y="1151" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="163" /> +<P1 x="454" y="896" id="313" /> +<P2 x="452" y="946" id="242" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="162" > +<father id="164" num="0" /> +<cdparam x="444" y="916" /> +<sizeparam width="257" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="158" /> +<TGConnectingPoint num="1" id="159" /> +<TGConnectingPoint num="2" id="160" /> +<TGConnectingPoint num="3" id="161" /> +<extraparam> +<guard value="[ AD.Message == AD_uncipher.Message]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="171" > +<cdparam x="448" y="628" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="170" /> +<P1 x="407" y="416" id="493" /> +<P2 x="407" y="466" id="447" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="169" > +<father id="171" num="0" /> +<cdparam x="444" y="448" /> +<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="165" /> +<TGConnectingPoint num="1" id="166" /> +<TGConnectingPoint num="2" id="167" /> +<TGConnectingPoint num="3" id="168" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH1 = DH(IK_a, SPKs_b) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="178" > +<cdparam x="406" y="298" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="177" /> +<P1 x="407" y="211" id="570" /> +<P2 x="407" y="273" id="529" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="176" > +<father id="178" num="0" /> +<cdparam x="439" y="227" /> +<sizeparam width="227" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="172" /> +<TGConnectingPoint num="1" id="173" /> +<TGConnectingPoint num="2" id="174" /> +<TGConnectingPoint num="3" id="175" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="get3(filler2, tmp1, tmp2, AD_cipher )" /> +<actions value="IK_a.Key = tmp1.Message" /> +<actions value="EC_a.Key = tmp2.Message " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="185" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="184" /> +<P1 x="407" y="70" id="591" /> +<P2 x="407" y="136" id="580" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="183" > +<father id="185" num="0" /> +<cdparam x="446" y="75" /> +<sizeparam width="225" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="179" /> +<TGConnectingPoint num="1" id="180" /> +<TGConnectingPoint num="2" id="181" /> +<TGConnectingPoint num="3" id="182" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = IK_b.Key" /> +<actions value="tmp2.Message = SPK_b.Key" /> +<actions value="tmp4 = sign(tmp2,IKs_b )" /> +<actions value="filler = concat3(tmp1, tmp2,tmp4 ) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="192" > +<cdparam x="407" y="181" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="191" /> +<P1 x="407" y="166" id="581" /> +<P2 x="407" y="181" id="569" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="190" > +<father id="192" num="0" /> +<cdparam x="412" y="214" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="186" /> +<TGConnectingPoint num="1" id="187" /> +<TGConnectingPoint num="2" id="188" /> +<TGConnectingPoint num="3" id="189" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="199" > +<cdparam x="483" y="484" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="198" /> +<P1 x="407" y="304" id="534" /> +<P2 x="407" y="386" id="488" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="197" > +<father id="199" num="0" /> +<cdparam x="440" y="326" /> +<sizeparam width="186" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="193" /> +<TGConnectingPoint num="1" id="194" /> +<TGConnectingPoint num="2" id="195" /> +<TGConnectingPoint num="3" id="196" /> +<extraparam> +<guard value="[ IK_a.Key==preload_IK_a.Key]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = IK_a.Key" /> +<actions value="tmp2.Message = IK_b.Key" /> +<actions value="AD = concat2(tmp1, tmp2) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="206" > +<cdparam x="421" y="767" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="205" /> +<P1 x="407" y="496" id="452" /> +<P2 x="407" y="536" id="406" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="204" > +<father id="206" num="0" /> +<cdparam x="444" y="520" /> +<sizeparam width="145" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="200" /> +<TGConnectingPoint num="1" id="201" /> +<TGConnectingPoint num="2" id="202" /> +<TGConnectingPoint num="3" id="203" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH2 = DH(EC_a, IKs_b) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="213" > +<cdparam x="432" y="878" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="212" /> +<P1 x="407" y="566" id="411" /> +<P2 x="407" y="610" id="365" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="211" > +<father id="213" num="0" /> +<cdparam x="439" y="592" /> +<sizeparam width="158" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="207" /> +<TGConnectingPoint num="1" id="208" /> +<TGConnectingPoint num="2" id="209" /> +<TGConnectingPoint num="3" id="210" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH3 = DH(EC_a, SPKs_b) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="220" > +<cdparam x="434" y="1001" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="219" /> +<P1 x="407" y="640" id="370" /> +<P2 x="407" y="782" id="324" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="218" > +<father id="220" num="0" /> +<cdparam x="433" y="679" /> +<sizeparam width="219" height="90" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="214" /> +<TGConnectingPoint num="1" id="215" /> +<TGConnectingPoint num="2" id="216" /> +<TGConnectingPoint num="3" id="217" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = DH1.Key" /> +<actions value="tmp2.Message = DH2.Key" /> +<actions value="tmp4.Message = DH3.Key" /> +<actions value="tmp4 = concat3(tmp1,tmp2, tmp4)" /> +<actions value="tmp4 = hash(tmp4) " /> +<actions value="SK.Key = tmp4.Message" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="227" > +<cdparam x="548" y="1250" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="226" /> +<P1 x="452" y="976" id="247" /> +<P2 x="452" y="1058" id="228" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="225" > +<father id="227" num="0" /> +<cdparam x="487" y="1005" /> +<sizeparam width="197" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="221" /> +<TGConnectingPoint num="1" id="222" /> +<TGConnectingPoint num="2" id="223" /> +<TGConnectingPoint num="3" id="224" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = MSG" /> +<actions value="tmp1 = concat2(tmp1, m)" /> +<actions value="m_cipher = sencrypt(tmp1, SK) " /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5103" id="238" > +<cdparam x="396" y="1063" /> +<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="Send signal" value="chout(m_cipher)" /> +<TGConnectingPoint num="0" id="228" /> +<TGConnectingPoint num="1" id="229" /> +<TGConnectingPoint num="2" id="230" /> +<TGConnectingPoint num="3" id="231" /> +<TGConnectingPoint num="4" id="232" /> +<TGConnectingPoint num="5" id="233" /> +<TGConnectingPoint num="6" id="234" /> +<TGConnectingPoint num="7" id="235" /> +<TGConnectingPoint num="8" id="236" /> +<TGConnectingPoint num="9" id="237" /> +</COMPONENT> + +<COMPONENT type="5101" id="240" > +<cdparam x="442" y="1116" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="239" /> +</COMPONENT> + +<COMPONENT type="5106" id="281" > +<cdparam x="375" y="946" /> +<sizeparam width="155" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="Alice_Binding_OK" /> +<TGConnectingPoint num="0" id="241" /> +<TGConnectingPoint num="1" id="242" /> +<TGConnectingPoint num="2" id="243" /> +<TGConnectingPoint num="3" id="244" /> +<TGConnectingPoint num="4" id="245" /> +<TGConnectingPoint num="5" id="246" /> +<TGConnectingPoint num="6" id="247" /> +<TGConnectingPoint num="7" id="248" /> +<TGConnectingPoint num="8" id="249" /> +<TGConnectingPoint num="9" id="250" /> +<TGConnectingPoint num="10" id="251" /> +<TGConnectingPoint num="11" id="252" /> +<TGConnectingPoint num="12" id="253" /> +<TGConnectingPoint num="13" id="254" /> +<TGConnectingPoint num="14" id="255" /> +<TGConnectingPoint num="15" id="256" /> +<TGConnectingPoint num="16" id="257" /> +<TGConnectingPoint num="17" id="258" /> +<TGConnectingPoint num="18" id="259" /> +<TGConnectingPoint num="19" id="260" /> +<TGConnectingPoint num="20" id="261" /> +<TGConnectingPoint num="21" id="262" /> +<TGConnectingPoint num="22" id="263" /> +<TGConnectingPoint num="23" id="264" /> +<TGConnectingPoint num="24" id="265" /> +<TGConnectingPoint num="25" id="266" /> +<TGConnectingPoint num="26" id="267" /> +<TGConnectingPoint num="27" id="268" /> +<TGConnectingPoint num="28" id="269" /> +<TGConnectingPoint num="29" id="270" /> +<TGConnectingPoint num="30" id="271" /> +<TGConnectingPoint num="31" id="272" /> +<TGConnectingPoint num="32" id="273" /> +<TGConnectingPoint num="33" id="274" /> +<TGConnectingPoint num="34" id="275" /> +<TGConnectingPoint num="35" id="276" /> +<TGConnectingPoint num="36" id="277" /> +<TGConnectingPoint num="37" id="278" /> +<TGConnectingPoint num="38" id="279" /> +<TGConnectingPoint num="39" id="280" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="322" > +<cdparam x="344" y="866" /> +<sizeparam width="127" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="Verify_AD" /> +<TGConnectingPoint num="0" id="282" /> +<TGConnectingPoint num="1" id="283" /> +<TGConnectingPoint num="2" id="284" /> +<TGConnectingPoint num="3" id="285" /> +<TGConnectingPoint num="4" id="286" /> +<TGConnectingPoint num="5" id="287" /> +<TGConnectingPoint num="6" id="288" /> +<TGConnectingPoint num="7" id="289" /> +<TGConnectingPoint num="8" id="290" /> +<TGConnectingPoint num="9" id="291" /> +<TGConnectingPoint num="10" id="292" /> +<TGConnectingPoint num="11" id="293" /> +<TGConnectingPoint num="12" id="294" /> +<TGConnectingPoint num="13" id="295" /> +<TGConnectingPoint num="14" id="296" /> +<TGConnectingPoint num="15" id="297" /> +<TGConnectingPoint num="16" id="298" /> +<TGConnectingPoint num="17" id="299" /> +<TGConnectingPoint num="18" id="300" /> +<TGConnectingPoint num="19" id="301" /> +<TGConnectingPoint num="20" id="302" /> +<TGConnectingPoint num="21" id="303" /> +<TGConnectingPoint num="22" id="304" /> +<TGConnectingPoint num="23" id="305" /> +<TGConnectingPoint num="24" id="306" /> +<TGConnectingPoint num="25" id="307" /> +<TGConnectingPoint num="26" id="308" /> +<TGConnectingPoint num="27" id="309" /> +<TGConnectingPoint num="28" id="310" /> +<TGConnectingPoint num="29" id="311" /> +<TGConnectingPoint num="30" id="312" /> +<TGConnectingPoint num="31" id="313" /> +<TGConnectingPoint num="32" id="314" /> +<TGConnectingPoint num="33" id="315" /> +<TGConnectingPoint num="34" id="316" /> +<TGConnectingPoint num="35" id="317" /> +<TGConnectingPoint num="36" id="318" /> +<TGConnectingPoint num="37" id="319" /> +<TGConnectingPoint num="38" id="320" /> +<TGConnectingPoint num="39" id="321" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="363" > +<cdparam x="318" y="782" /> +<sizeparam width="179" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalculateSecretKey" /> +<TGConnectingPoint num="0" id="323" /> +<TGConnectingPoint num="1" id="324" /> +<TGConnectingPoint num="2" id="325" /> +<TGConnectingPoint num="3" id="326" /> +<TGConnectingPoint num="4" id="327" /> +<TGConnectingPoint num="5" id="328" /> +<TGConnectingPoint num="6" id="329" /> +<TGConnectingPoint num="7" id="330" /> +<TGConnectingPoint num="8" id="331" /> +<TGConnectingPoint num="9" id="332" /> +<TGConnectingPoint num="10" id="333" /> +<TGConnectingPoint num="11" id="334" /> +<TGConnectingPoint num="12" id="335" /> +<TGConnectingPoint num="13" id="336" /> +<TGConnectingPoint num="14" id="337" /> +<TGConnectingPoint num="15" id="338" /> +<TGConnectingPoint num="16" id="339" /> +<TGConnectingPoint num="17" id="340" /> +<TGConnectingPoint num="18" id="341" /> +<TGConnectingPoint num="19" id="342" /> +<TGConnectingPoint num="20" id="343" /> +<TGConnectingPoint num="21" id="344" /> +<TGConnectingPoint num="22" id="345" /> +<TGConnectingPoint num="23" id="346" /> +<TGConnectingPoint num="24" id="347" /> +<TGConnectingPoint num="25" id="348" /> +<TGConnectingPoint num="26" id="349" /> +<TGConnectingPoint num="27" id="350" /> +<TGConnectingPoint num="28" id="351" /> +<TGConnectingPoint num="29" id="352" /> +<TGConnectingPoint num="30" id="353" /> +<TGConnectingPoint num="31" id="354" /> +<TGConnectingPoint num="32" id="355" /> +<TGConnectingPoint num="33" id="356" /> +<TGConnectingPoint num="34" id="357" /> +<TGConnectingPoint num="35" id="358" /> +<TGConnectingPoint num="36" id="359" /> +<TGConnectingPoint num="37" id="360" /> +<TGConnectingPoint num="38" id="361" /> +<TGConnectingPoint num="39" id="362" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="404" > +<cdparam x="357" y="610" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalcDH3" /> +<TGConnectingPoint num="0" id="364" /> +<TGConnectingPoint num="1" id="365" /> +<TGConnectingPoint num="2" id="366" /> +<TGConnectingPoint num="3" id="367" /> +<TGConnectingPoint num="4" id="368" /> +<TGConnectingPoint num="5" id="369" /> +<TGConnectingPoint num="6" id="370" /> +<TGConnectingPoint num="7" id="371" /> +<TGConnectingPoint num="8" id="372" /> +<TGConnectingPoint num="9" id="373" /> +<TGConnectingPoint num="10" id="374" /> +<TGConnectingPoint num="11" id="375" /> +<TGConnectingPoint num="12" id="376" /> +<TGConnectingPoint num="13" id="377" /> +<TGConnectingPoint num="14" id="378" /> +<TGConnectingPoint num="15" id="379" /> +<TGConnectingPoint num="16" id="380" /> +<TGConnectingPoint num="17" id="381" /> +<TGConnectingPoint num="18" id="382" /> +<TGConnectingPoint num="19" id="383" /> +<TGConnectingPoint num="20" id="384" /> +<TGConnectingPoint num="21" id="385" /> +<TGConnectingPoint num="22" id="386" /> +<TGConnectingPoint num="23" id="387" /> +<TGConnectingPoint num="24" id="388" /> +<TGConnectingPoint num="25" id="389" /> +<TGConnectingPoint num="26" id="390" /> +<TGConnectingPoint num="27" id="391" /> +<TGConnectingPoint num="28" id="392" /> +<TGConnectingPoint num="29" id="393" /> +<TGConnectingPoint num="30" id="394" /> +<TGConnectingPoint num="31" id="395" /> +<TGConnectingPoint num="32" id="396" /> +<TGConnectingPoint num="33" id="397" /> +<TGConnectingPoint num="34" id="398" /> +<TGConnectingPoint num="35" id="399" /> +<TGConnectingPoint num="36" id="400" /> +<TGConnectingPoint num="37" id="401" /> +<TGConnectingPoint num="38" id="402" /> +<TGConnectingPoint num="39" id="403" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="445" > +<cdparam x="357" y="536" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalcDH2" /> +<TGConnectingPoint num="0" id="405" /> +<TGConnectingPoint num="1" id="406" /> +<TGConnectingPoint num="2" id="407" /> +<TGConnectingPoint num="3" id="408" /> +<TGConnectingPoint num="4" id="409" /> +<TGConnectingPoint num="5" id="410" /> +<TGConnectingPoint num="6" id="411" /> +<TGConnectingPoint num="7" id="412" /> +<TGConnectingPoint num="8" id="413" /> +<TGConnectingPoint num="9" id="414" /> +<TGConnectingPoint num="10" id="415" /> +<TGConnectingPoint num="11" id="416" /> +<TGConnectingPoint num="12" id="417" /> +<TGConnectingPoint num="13" id="418" /> +<TGConnectingPoint num="14" id="419" /> +<TGConnectingPoint num="15" id="420" /> +<TGConnectingPoint num="16" id="421" /> +<TGConnectingPoint num="17" id="422" /> +<TGConnectingPoint num="18" id="423" /> +<TGConnectingPoint num="19" id="424" /> +<TGConnectingPoint num="20" id="425" /> +<TGConnectingPoint num="21" id="426" /> +<TGConnectingPoint num="22" id="427" /> +<TGConnectingPoint num="23" id="428" /> +<TGConnectingPoint num="24" id="429" /> +<TGConnectingPoint num="25" id="430" /> +<TGConnectingPoint num="26" id="431" /> +<TGConnectingPoint num="27" id="432" /> +<TGConnectingPoint num="28" id="433" /> +<TGConnectingPoint num="29" id="434" /> +<TGConnectingPoint num="30" id="435" /> +<TGConnectingPoint num="31" id="436" /> +<TGConnectingPoint num="32" id="437" /> +<TGConnectingPoint num="33" id="438" /> +<TGConnectingPoint num="34" id="439" /> +<TGConnectingPoint num="35" id="440" /> +<TGConnectingPoint num="36" id="441" /> +<TGConnectingPoint num="37" id="442" /> +<TGConnectingPoint num="38" id="443" /> +<TGConnectingPoint num="39" id="444" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="486" > +<cdparam x="357" y="466" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalcDH1" /> +<TGConnectingPoint num="0" id="446" /> +<TGConnectingPoint num="1" id="447" /> +<TGConnectingPoint num="2" id="448" /> +<TGConnectingPoint num="3" id="449" /> +<TGConnectingPoint num="4" id="450" /> +<TGConnectingPoint num="5" id="451" /> +<TGConnectingPoint num="6" id="452" /> +<TGConnectingPoint num="7" id="453" /> +<TGConnectingPoint num="8" id="454" /> +<TGConnectingPoint num="9" id="455" /> +<TGConnectingPoint num="10" id="456" /> +<TGConnectingPoint num="11" id="457" /> +<TGConnectingPoint num="12" id="458" /> +<TGConnectingPoint num="13" id="459" /> +<TGConnectingPoint num="14" id="460" /> +<TGConnectingPoint num="15" id="461" /> +<TGConnectingPoint num="16" id="462" /> +<TGConnectingPoint num="17" id="463" /> +<TGConnectingPoint num="18" id="464" /> +<TGConnectingPoint num="19" id="465" /> +<TGConnectingPoint num="20" id="466" /> +<TGConnectingPoint num="21" id="467" /> +<TGConnectingPoint num="22" id="468" /> +<TGConnectingPoint num="23" id="469" /> +<TGConnectingPoint num="24" id="470" /> +<TGConnectingPoint num="25" id="471" /> +<TGConnectingPoint num="26" id="472" /> +<TGConnectingPoint num="27" id="473" /> +<TGConnectingPoint num="28" id="474" /> +<TGConnectingPoint num="29" id="475" /> +<TGConnectingPoint num="30" id="476" /> +<TGConnectingPoint num="31" id="477" /> +<TGConnectingPoint num="32" id="478" /> +<TGConnectingPoint num="33" id="479" /> +<TGConnectingPoint num="34" id="480" /> +<TGConnectingPoint num="35" id="481" /> +<TGConnectingPoint num="36" id="482" /> +<TGConnectingPoint num="37" id="483" /> +<TGConnectingPoint num="38" id="484" /> +<TGConnectingPoint num="39" id="485" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="527" > +<cdparam x="343" y="386" /> +<sizeparam width="129" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="Calc_Public_AD" /> +<TGConnectingPoint num="0" id="487" /> +<TGConnectingPoint num="1" id="488" /> +<TGConnectingPoint num="2" id="489" /> +<TGConnectingPoint num="3" id="490" /> +<TGConnectingPoint num="4" id="491" /> +<TGConnectingPoint num="5" id="492" /> +<TGConnectingPoint num="6" id="493" /> +<TGConnectingPoint num="7" id="494" /> +<TGConnectingPoint num="8" id="495" /> +<TGConnectingPoint num="9" id="496" /> +<TGConnectingPoint num="10" id="497" /> +<TGConnectingPoint num="11" id="498" /> +<TGConnectingPoint num="12" id="499" /> +<TGConnectingPoint num="13" id="500" /> +<TGConnectingPoint num="14" id="501" /> +<TGConnectingPoint num="15" id="502" /> +<TGConnectingPoint num="16" id="503" /> +<TGConnectingPoint num="17" id="504" /> +<TGConnectingPoint num="18" id="505" /> +<TGConnectingPoint num="19" id="506" /> +<TGConnectingPoint num="20" id="507" /> +<TGConnectingPoint num="21" id="508" /> +<TGConnectingPoint num="22" id="509" /> +<TGConnectingPoint num="23" id="510" /> +<TGConnectingPoint num="24" id="511" /> +<TGConnectingPoint num="25" id="512" /> +<TGConnectingPoint num="26" id="513" /> +<TGConnectingPoint num="27" id="514" /> +<TGConnectingPoint num="28" id="515" /> +<TGConnectingPoint num="29" id="516" /> +<TGConnectingPoint num="30" id="517" /> +<TGConnectingPoint num="31" id="518" /> +<TGConnectingPoint num="32" id="519" /> +<TGConnectingPoint num="33" id="520" /> +<TGConnectingPoint num="34" id="521" /> +<TGConnectingPoint num="35" id="522" /> +<TGConnectingPoint num="36" id="523" /> +<TGConnectingPoint num="37" id="524" /> +<TGConnectingPoint num="38" id="525" /> +<TGConnectingPoint num="39" id="526" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="568" > +<cdparam x="304" y="273" /> +<sizeparam width="206" height="31" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="Retrieve_Alice_message" /> +<TGConnectingPoint num="0" id="528" /> +<TGConnectingPoint num="1" id="529" /> +<TGConnectingPoint num="2" id="530" /> +<TGConnectingPoint num="3" id="531" /> +<TGConnectingPoint num="4" id="532" /> +<TGConnectingPoint num="5" id="533" /> +<TGConnectingPoint num="6" id="534" /> +<TGConnectingPoint num="7" id="535" /> +<TGConnectingPoint num="8" id="536" /> +<TGConnectingPoint num="9" id="537" /> +<TGConnectingPoint num="10" id="538" /> +<TGConnectingPoint num="11" id="539" /> +<TGConnectingPoint num="12" id="540" /> +<TGConnectingPoint num="13" id="541" /> +<TGConnectingPoint num="14" id="542" /> +<TGConnectingPoint num="15" id="543" /> +<TGConnectingPoint num="16" id="544" /> +<TGConnectingPoint num="17" id="545" /> +<TGConnectingPoint num="18" id="546" /> +<TGConnectingPoint num="19" id="547" /> +<TGConnectingPoint num="20" id="548" /> +<TGConnectingPoint num="21" id="549" /> +<TGConnectingPoint num="22" id="550" /> +<TGConnectingPoint num="23" id="551" /> +<TGConnectingPoint num="24" id="552" /> +<TGConnectingPoint num="25" id="553" /> +<TGConnectingPoint num="26" id="554" /> +<TGConnectingPoint num="27" id="555" /> +<TGConnectingPoint num="28" id="556" /> +<TGConnectingPoint num="29" id="557" /> +<TGConnectingPoint num="30" id="558" /> +<TGConnectingPoint num="31" id="559" /> +<TGConnectingPoint num="32" id="560" /> +<TGConnectingPoint num="33" id="561" /> +<TGConnectingPoint num="34" id="562" /> +<TGConnectingPoint num="35" id="563" /> +<TGConnectingPoint num="36" id="564" /> +<TGConnectingPoint num="37" id="565" /> +<TGConnectingPoint num="38" id="566" /> +<TGConnectingPoint num="39" id="567" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="579" > +<cdparam x="363" y="186" /> +<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="Receive signal" value="chin(filler2)" /> +<TGConnectingPoint num="0" id="569" /> +<TGConnectingPoint num="1" id="570" /> +<TGConnectingPoint num="2" id="571" /> +<TGConnectingPoint num="3" id="572" /> +<TGConnectingPoint num="4" id="573" /> +<TGConnectingPoint num="5" id="574" /> +<TGConnectingPoint num="6" id="575" /> +<TGConnectingPoint num="7" id="576" /> +<TGConnectingPoint num="8" id="577" /> +<TGConnectingPoint num="9" id="578" /> +</COMPONENT> + +<COMPONENT type="5103" id="590" > +<cdparam x="366" y="141" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="Send signal" value="chout(filler)" /> +<TGConnectingPoint num="0" id="580" /> +<TGConnectingPoint num="1" id="581" /> +<TGConnectingPoint num="2" id="582" /> +<TGConnectingPoint num="3" id="583" /> +<TGConnectingPoint num="4" id="584" /> +<TGConnectingPoint num="5" id="585" /> +<TGConnectingPoint num="6" id="586" /> +<TGConnectingPoint num="7" id="587" /> +<TGConnectingPoint num="8" id="588" /> +<TGConnectingPoint num="9" id="589" /> +</COMPONENT> + +<COMPONENT type="5100" id="592" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="591" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Alice" minX="10" maxX="2500" minY="10" maxY="2000" > +<CONNECTOR type="5102" id="599" > +<cdparam x="642" y="606" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="598" /> +<P1 x="579" y="421" id="1068" /> +<P2 x="624" y="518" id="767" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="597" > +<father id="599" num="0" /> +<cdparam x="635" y="490" /> +<sizeparam width="40" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="593" /> +<TGConnectingPoint num="1" id="594" /> +<TGConnectingPoint num="2" id="595" /> +<TGConnectingPoint num="3" id="596" /> +<extraparam> +<guard value="[else ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="606" > +<cdparam x="380" y="1472" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="605" /> +<P1 x="420" y="1151" id="1027" /> +<P2 x="420" y="1177" id="848" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="604" > +<father id="606" num="0" /> +<cdparam x="381" y="1525" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="600" /> +<TGConnectingPoint num="1" id="601" /> +<TGConnectingPoint num="2" id="602" /> +<TGConnectingPoint num="3" id="603" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="613" > +<cdparam x="372" y="1143" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="612" /> +<P1 x="420" y="912" id="865" /> +<P2 x="420" y="1121" id="1026" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="611" > +<father id="613" num="0" /> +<cdparam x="179" y="946" /> +<sizeparam width="229" height="150" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="607" /> +<TGConnectingPoint num="1" id="608" /> +<TGConnectingPoint num="2" id="609" /> +<TGConnectingPoint num="3" id="610" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = DH1.Key" /> +<actions value="tmp2.Message = DH2.Key" /> +<actions value="tmp4.Message = DH3.Key" /> +<actions value="tmp4= concat3(tmp1, tmp2, tmp4)" /> +<actions value="tmp4= hash(tmp4)" /> +<actions value="tmp1.Message = IK_a.Key" /> +<actions value="tmp2.Message = EC_a.Key" /> +<actions value="SK.Key = tmp4.Message" /> +<actions value="tmp4= sencrypt(AD, SK)" /> +<actions value="filler2 = concat3(tmp1, tmp2,tmp4 ) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="620" > +<cdparam x="493" y="1033" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="619" /> +<P1 x="420" y="818" id="906" /> +<P2 x="420" y="882" id="860" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="618" > +<father id="620" num="0" /> +<cdparam x="230" y="857" /> +<sizeparam width="158" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="614" /> +<TGConnectingPoint num="1" id="615" /> +<TGConnectingPoint num="2" id="616" /> +<TGConnectingPoint num="3" id="617" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH3 = DH(SPK_b, ECs_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="627" > +<cdparam x="499" y="914" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="626" /> +<P1 x="420" y="732" id="947" /> +<P2 x="420" y="788" id="901" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="625" > +<father id="627" num="0" /> +<cdparam x="246" y="766" /> +<sizeparam width="145" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="621" /> +<TGConnectingPoint num="1" id="622" /> +<TGConnectingPoint num="2" id="623" /> +<TGConnectingPoint num="3" id="624" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH2 = DH(IK_b, ECs_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="634" > +<cdparam x="502" y="789" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="633" /> +<P1 x="420" y="649" id="988" /> +<P2 x="420" y="702" id="942" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="632" > +<father id="634" num="0" /> +<cdparam x="241" y="678" /> +<sizeparam width="152" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="628" /> +<TGConnectingPoint num="1" id="629" /> +<TGConnectingPoint num="2" id="630" /> +<TGConnectingPoint num="3" id="631" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="DH1 = DH(SPK_b, IKs_a) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="641" > +<cdparam x="583" y="606" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="640" /> +<P1 x="420" y="548" id="1024" /> +<P2 x="420" y="619" id="983" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="639" > +<father id="641" num="0" /> +<cdparam x="258" y="574" /> +<sizeparam width="112" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="635" /> +<TGConnectingPoint num="1" id="636" /> +<TGConnectingPoint num="2" id="637" /> +<TGConnectingPoint num="3" id="638" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="ECs_a.Key = tmp3" /> +<actions value="EC_a = pk(ECs_a)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="648" > +<cdparam x="434" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="647" /> +<P1 x="432" y="303" id="1134" /> +<P2 x="520" y="391" id="1038" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="646" > +<father id="648" num="0" /> +<cdparam x="518" y="311" /> +<sizeparam width="168" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="642" /> +<TGConnectingPoint num="1" id="643" /> +<TGConnectingPoint num="2" id="644" /> +<TGConnectingPoint num="3" id="645" /> +<extraparam> +<guard value="[b ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1.Message = IK_a.Key" /> +<actions value="tmp2.Message = IK_b.Key" /> +<actions value="AD = concat2(tmp1, tmp2)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="655" > +<cdparam x="409" y="427" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="654" /> +<P1 x="382" y="303" id="1133" /> +<P2 x="296" y="388" id="1079" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="653" > +<father id="655" num="0" /> +<cdparam x="260" y="322" /> +<sizeparam width="40" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="649" /> +<TGConnectingPoint num="1" id="650" /> +<TGConnectingPoint num="2" id="651" /> +<TGConnectingPoint num="3" id="652" /> +<extraparam> +<guard value="[else ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="662" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="661" /> +<P1 x="407" y="70" id="1182" /> +<P2 x="407" y="92" id="1171" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="660" > +<father id="662" num="0" /> +<cdparam x="416" y="91" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="656" /> +<TGConnectingPoint num="1" id="657" /> +<TGConnectingPoint num="2" id="658" /> +<TGConnectingPoint num="3" id="659" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="669" > +<cdparam x="408" y="166" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="668" /> +<P1 x="407" y="122" id="1172" /> +<P2 x="407" y="146" id="1160" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="667" > +<father id="669" num="0" /> +<cdparam x="421" y="169" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="663" /> +<TGConnectingPoint num="1" id="664" /> +<TGConnectingPoint num="2" id="665" /> +<TGConnectingPoint num="3" id="666" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="676" > +<cdparam x="405" y="267" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="675" /> +<P1 x="407" y="176" id="1161" /> +<P2 x="407" y="273" id="1120" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="674" > +<father id="676" num="0" /> +<cdparam x="427" y="208" /> +<sizeparam width="197" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="670" /> +<TGConnectingPoint num="1" id="671" /> +<TGConnectingPoint num="2" id="672" /> +<TGConnectingPoint num="3" id="673" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="get3(filler, tmp1, tmp2, sign) " /> +<actions value="IK_b.Key = tmp1.Message" /> +<actions value="SPK_b.Key = tmp2.Message" /> +<actions value="b = verifySign(tmp2, sign, IK_b) " /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="683" > +<cdparam x="502" y="606" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="682" /> +<P1 x="458" y="421" id="1065" /> +<P2 x="420" y="518" id="1023" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="681" > +<father id="683" num="0" /> +<cdparam x="219" y="491" /> +<sizeparam width="186" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="677" /> +<TGConnectingPoint num="1" id="678" /> +<TGConnectingPoint num="2" id="679" /> +<TGConnectingPoint num="3" id="680" /> +<extraparam> +<guard value="[IK_b.Key== preload_IK_b.Key]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="690" > +<cdparam x="380" y="1559" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="689" /> +<P1 x="420" y="1207" id="849" /> +<P2 x="420" y="1263" id="808" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="688" > +<father id="690" num="0" /> +<cdparam x="214" y="1227" /> +<sizeparam width="193" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="684" /> +<TGConnectingPoint num="1" id="685" /> +<TGConnectingPoint num="2" id="686" /> +<TGConnectingPoint num="3" id="687" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +<actions value="tmp1 = sdecrypt(m_cipher, SK)" /> +<actions value="get2(tmp1, tmp1, m)" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="697" > +<cdparam x="308" y="418" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="696" /> +<P1 x="296" y="418" id="1084" /> +<P2 x="295" y="436" id="764" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="695" > +<father id="697" num="0" /> +<cdparam x="321" y="438" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="691" /> +<TGConnectingPoint num="1" id="692" /> +<TGConnectingPoint num="2" id="693" /> +<TGConnectingPoint num="3" id="694" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="704" > +<cdparam x="642" y="548" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="703" /> +<P1 x="624" y="548" id="772" /> +<P2 x="624" y="571" id="762" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="702" > +<father id="704" num="0" /> +<cdparam x="659" y="567" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="698" /> +<TGConnectingPoint num="1" id="699" /> +<TGConnectingPoint num="2" id="700" /> +<TGConnectingPoint num="3" id="701" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="711" > +<cdparam x="432" y="1293" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="710" /> +<P1 x="420" y="1368" id="725" /> +<P2 x="420" y="1404" id="760" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="709" > +<father id="711" num="0" /> +<cdparam x="459" y="1318" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="705" /> +<TGConnectingPoint num="1" id="706" /> +<TGConnectingPoint num="2" id="707" /> +<TGConnectingPoint num="3" id="708" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="718" > +<cdparam x="407" y="1293" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="717" /> +<P1 x="420" y="1293" id="813" /> +<P2 x="420" y="1338" id="720" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="716" > +<father id="718" num="0" /> +<cdparam x="241" y="1319" /> +<sizeparam width="157" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="712" /> +<TGConnectingPoint num="1" id="713" /> +<TGConnectingPoint num="2" id="714" /> +<TGConnectingPoint num="3" id="715" /> +<extraparam> +<guard value="[tmp1.Message == MSG]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5106" id="759" > +<cdparam x="365" y="1338" /> +<sizeparam width="110" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="MDecrypted" /> +<TGConnectingPoint num="0" id="719" /> +<TGConnectingPoint num="1" id="720" /> +<TGConnectingPoint num="2" id="721" /> +<TGConnectingPoint num="3" id="722" /> +<TGConnectingPoint num="4" id="723" /> +<TGConnectingPoint num="5" id="724" /> +<TGConnectingPoint num="6" id="725" /> +<TGConnectingPoint num="7" id="726" /> +<TGConnectingPoint num="8" id="727" /> +<TGConnectingPoint num="9" id="728" /> +<TGConnectingPoint num="10" id="729" /> +<TGConnectingPoint num="11" id="730" /> +<TGConnectingPoint num="12" id="731" /> +<TGConnectingPoint num="13" id="732" /> +<TGConnectingPoint num="14" id="733" /> +<TGConnectingPoint num="15" id="734" /> +<TGConnectingPoint num="16" id="735" /> +<TGConnectingPoint num="17" id="736" /> +<TGConnectingPoint num="18" id="737" /> +<TGConnectingPoint num="19" id="738" /> +<TGConnectingPoint num="20" id="739" /> +<TGConnectingPoint num="21" id="740" /> +<TGConnectingPoint num="22" id="741" /> +<TGConnectingPoint num="23" id="742" /> +<TGConnectingPoint num="24" id="743" /> +<TGConnectingPoint num="25" id="744" /> +<TGConnectingPoint num="26" id="745" /> +<TGConnectingPoint num="27" id="746" /> +<TGConnectingPoint num="28" id="747" /> +<TGConnectingPoint num="29" id="748" /> +<TGConnectingPoint num="30" id="749" /> +<TGConnectingPoint num="31" id="750" /> +<TGConnectingPoint num="32" id="751" /> +<TGConnectingPoint num="33" id="752" /> +<TGConnectingPoint num="34" id="753" /> +<TGConnectingPoint num="35" id="754" /> +<TGConnectingPoint num="36" id="755" /> +<TGConnectingPoint num="37" id="756" /> +<TGConnectingPoint num="38" id="757" /> +<TGConnectingPoint num="39" id="758" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5101" id="761" > +<cdparam x="410" y="1409" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="760" /> +</COMPONENT> + +<COMPONENT type="5101" id="763" > +<cdparam x="614" y="576" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="762" /> +</COMPONENT> + +<COMPONENT type="5101" id="765" > +<cdparam x="285" y="441" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="764" /> +</COMPONENT> + +<COMPONENT type="5106" id="806" > +<cdparam x="551" y="518" /> +<sizeparam width="147" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="error_bob_identity" /> +<TGConnectingPoint num="0" id="766" /> +<TGConnectingPoint num="1" id="767" /> +<TGConnectingPoint num="2" id="768" /> +<TGConnectingPoint num="3" id="769" /> +<TGConnectingPoint num="4" id="770" /> +<TGConnectingPoint num="5" id="771" /> +<TGConnectingPoint num="6" id="772" /> +<TGConnectingPoint num="7" id="773" /> +<TGConnectingPoint num="8" id="774" /> +<TGConnectingPoint num="9" id="775" /> +<TGConnectingPoint num="10" id="776" /> +<TGConnectingPoint num="11" id="777" /> +<TGConnectingPoint num="12" id="778" /> +<TGConnectingPoint num="13" id="779" /> +<TGConnectingPoint num="14" id="780" /> +<TGConnectingPoint num="15" id="781" /> +<TGConnectingPoint num="16" id="782" /> +<TGConnectingPoint num="17" id="783" /> +<TGConnectingPoint num="18" id="784" /> +<TGConnectingPoint num="19" id="785" /> +<TGConnectingPoint num="20" id="786" /> +<TGConnectingPoint num="21" id="787" /> +<TGConnectingPoint num="22" id="788" /> +<TGConnectingPoint num="23" id="789" /> +<TGConnectingPoint num="24" id="790" /> +<TGConnectingPoint num="25" id="791" /> +<TGConnectingPoint num="26" id="792" /> +<TGConnectingPoint num="27" id="793" /> +<TGConnectingPoint num="28" id="794" /> +<TGConnectingPoint num="29" id="795" /> +<TGConnectingPoint num="30" id="796" /> +<TGConnectingPoint num="31" id="797" /> +<TGConnectingPoint num="32" id="798" /> +<TGConnectingPoint num="33" id="799" /> +<TGConnectingPoint num="34" id="800" /> +<TGConnectingPoint num="35" id="801" /> +<TGConnectingPoint num="36" id="802" /> +<TGConnectingPoint num="37" id="803" /> +<TGConnectingPoint num="38" id="804" /> +<TGConnectingPoint num="39" id="805" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="847" > +<cdparam x="370" y="1263" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="DecryptM" /> +<TGConnectingPoint num="0" id="807" /> +<TGConnectingPoint num="1" id="808" /> +<TGConnectingPoint num="2" id="809" /> +<TGConnectingPoint num="3" id="810" /> +<TGConnectingPoint num="4" id="811" /> +<TGConnectingPoint num="5" id="812" /> +<TGConnectingPoint num="6" id="813" /> +<TGConnectingPoint num="7" id="814" /> +<TGConnectingPoint num="8" id="815" /> +<TGConnectingPoint num="9" id="816" /> +<TGConnectingPoint num="10" id="817" /> +<TGConnectingPoint num="11" id="818" /> +<TGConnectingPoint num="12" id="819" /> +<TGConnectingPoint num="13" id="820" /> +<TGConnectingPoint num="14" id="821" /> +<TGConnectingPoint num="15" id="822" /> +<TGConnectingPoint num="16" id="823" /> +<TGConnectingPoint num="17" id="824" /> +<TGConnectingPoint num="18" id="825" /> +<TGConnectingPoint num="19" id="826" /> +<TGConnectingPoint num="20" id="827" /> +<TGConnectingPoint num="21" id="828" /> +<TGConnectingPoint num="22" id="829" /> +<TGConnectingPoint num="23" id="830" /> +<TGConnectingPoint num="24" id="831" /> +<TGConnectingPoint num="25" id="832" /> +<TGConnectingPoint num="26" id="833" /> +<TGConnectingPoint num="27" id="834" /> +<TGConnectingPoint num="28" id="835" /> +<TGConnectingPoint num="29" id="836" /> +<TGConnectingPoint num="30" id="837" /> +<TGConnectingPoint num="31" id="838" /> +<TGConnectingPoint num="32" id="839" /> +<TGConnectingPoint num="33" id="840" /> +<TGConnectingPoint num="34" id="841" /> +<TGConnectingPoint num="35" id="842" /> +<TGConnectingPoint num="36" id="843" /> +<TGConnectingPoint num="37" id="844" /> +<TGConnectingPoint num="38" id="845" /> +<TGConnectingPoint num="39" id="846" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="858" > +<cdparam x="365" y="1182" /> +<sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="Receive signal" value="chin(m_cipher)" /> +<TGConnectingPoint num="0" id="848" /> +<TGConnectingPoint num="1" id="849" /> +<TGConnectingPoint num="2" id="850" /> +<TGConnectingPoint num="3" id="851" /> +<TGConnectingPoint num="4" id="852" /> +<TGConnectingPoint num="5" id="853" /> +<TGConnectingPoint num="6" id="854" /> +<TGConnectingPoint num="7" id="855" /> +<TGConnectingPoint num="8" id="856" /> +<TGConnectingPoint num="9" id="857" /> +</COMPONENT> + +<COMPONENT type="5106" id="899" > +<cdparam x="335" y="882" /> +<sizeparam width="170" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalculateSecretKey" /> +<TGConnectingPoint num="0" id="859" /> +<TGConnectingPoint num="1" id="860" /> +<TGConnectingPoint num="2" id="861" /> +<TGConnectingPoint num="3" id="862" /> +<TGConnectingPoint num="4" id="863" /> +<TGConnectingPoint num="5" id="864" /> +<TGConnectingPoint num="6" id="865" /> +<TGConnectingPoint num="7" id="866" /> +<TGConnectingPoint num="8" id="867" /> +<TGConnectingPoint num="9" id="868" /> +<TGConnectingPoint num="10" id="869" /> +<TGConnectingPoint num="11" id="870" /> +<TGConnectingPoint num="12" id="871" /> +<TGConnectingPoint num="13" id="872" /> +<TGConnectingPoint num="14" id="873" /> +<TGConnectingPoint num="15" id="874" /> +<TGConnectingPoint num="16" id="875" /> +<TGConnectingPoint num="17" id="876" /> +<TGConnectingPoint num="18" id="877" /> +<TGConnectingPoint num="19" id="878" /> +<TGConnectingPoint num="20" id="879" /> +<TGConnectingPoint num="21" id="880" /> +<TGConnectingPoint num="22" id="881" /> +<TGConnectingPoint num="23" id="882" /> +<TGConnectingPoint num="24" id="883" /> +<TGConnectingPoint num="25" id="884" /> +<TGConnectingPoint num="26" id="885" /> +<TGConnectingPoint num="27" id="886" /> +<TGConnectingPoint num="28" id="887" /> +<TGConnectingPoint num="29" id="888" /> +<TGConnectingPoint num="30" id="889" /> +<TGConnectingPoint num="31" id="890" /> +<TGConnectingPoint num="32" id="891" /> +<TGConnectingPoint num="33" id="892" /> +<TGConnectingPoint num="34" id="893" /> +<TGConnectingPoint num="35" id="894" /> +<TGConnectingPoint num="36" id="895" /> +<TGConnectingPoint num="37" id="896" /> +<TGConnectingPoint num="38" id="897" /> +<TGConnectingPoint num="39" id="898" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="940" > +<cdparam x="370" y="788" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalcDH3" /> +<TGConnectingPoint num="0" id="900" /> +<TGConnectingPoint num="1" id="901" /> +<TGConnectingPoint num="2" id="902" /> +<TGConnectingPoint num="3" id="903" /> +<TGConnectingPoint num="4" id="904" /> +<TGConnectingPoint num="5" id="905" /> +<TGConnectingPoint num="6" id="906" /> +<TGConnectingPoint num="7" id="907" /> +<TGConnectingPoint num="8" id="908" /> +<TGConnectingPoint num="9" id="909" /> +<TGConnectingPoint num="10" id="910" /> +<TGConnectingPoint num="11" id="911" /> +<TGConnectingPoint num="12" id="912" /> +<TGConnectingPoint num="13" id="913" /> +<TGConnectingPoint num="14" id="914" /> +<TGConnectingPoint num="15" id="915" /> +<TGConnectingPoint num="16" id="916" /> +<TGConnectingPoint num="17" id="917" /> +<TGConnectingPoint num="18" id="918" /> +<TGConnectingPoint num="19" id="919" /> +<TGConnectingPoint num="20" id="920" /> +<TGConnectingPoint num="21" id="921" /> +<TGConnectingPoint num="22" id="922" /> +<TGConnectingPoint num="23" id="923" /> +<TGConnectingPoint num="24" id="924" /> +<TGConnectingPoint num="25" id="925" /> +<TGConnectingPoint num="26" id="926" /> +<TGConnectingPoint num="27" id="927" /> +<TGConnectingPoint num="28" id="928" /> +<TGConnectingPoint num="29" id="929" /> +<TGConnectingPoint num="30" id="930" /> +<TGConnectingPoint num="31" id="931" /> +<TGConnectingPoint num="32" id="932" /> +<TGConnectingPoint num="33" id="933" /> +<TGConnectingPoint num="34" id="934" /> +<TGConnectingPoint num="35" id="935" /> +<TGConnectingPoint num="36" id="936" /> +<TGConnectingPoint num="37" id="937" /> +<TGConnectingPoint num="38" id="938" /> +<TGConnectingPoint num="39" id="939" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="981" > +<cdparam x="370" y="702" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalcDH2" /> +<TGConnectingPoint num="0" id="941" /> +<TGConnectingPoint num="1" id="942" /> +<TGConnectingPoint num="2" id="943" /> +<TGConnectingPoint num="3" id="944" /> +<TGConnectingPoint num="4" id="945" /> +<TGConnectingPoint num="5" id="946" /> +<TGConnectingPoint num="6" id="947" /> +<TGConnectingPoint num="7" id="948" /> +<TGConnectingPoint num="8" id="949" /> +<TGConnectingPoint num="9" id="950" /> +<TGConnectingPoint num="10" id="951" /> +<TGConnectingPoint num="11" id="952" /> +<TGConnectingPoint num="12" id="953" /> +<TGConnectingPoint num="13" id="954" /> +<TGConnectingPoint num="14" id="955" /> +<TGConnectingPoint num="15" id="956" /> +<TGConnectingPoint num="16" id="957" /> +<TGConnectingPoint num="17" id="958" /> +<TGConnectingPoint num="18" id="959" /> +<TGConnectingPoint num="19" id="960" /> +<TGConnectingPoint num="20" id="961" /> +<TGConnectingPoint num="21" id="962" /> +<TGConnectingPoint num="22" id="963" /> +<TGConnectingPoint num="23" id="964" /> +<TGConnectingPoint num="24" id="965" /> +<TGConnectingPoint num="25" id="966" /> +<TGConnectingPoint num="26" id="967" /> +<TGConnectingPoint num="27" id="968" /> +<TGConnectingPoint num="28" id="969" /> +<TGConnectingPoint num="29" id="970" /> +<TGConnectingPoint num="30" id="971" /> +<TGConnectingPoint num="31" id="972" /> +<TGConnectingPoint num="32" id="973" /> +<TGConnectingPoint num="33" id="974" /> +<TGConnectingPoint num="34" id="975" /> +<TGConnectingPoint num="35" id="976" /> +<TGConnectingPoint num="36" id="977" /> +<TGConnectingPoint num="37" id="978" /> +<TGConnectingPoint num="38" id="979" /> +<TGConnectingPoint num="39" id="980" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1022" > +<cdparam x="370" y="619" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="CalcDH1" /> +<TGConnectingPoint num="0" id="982" /> +<TGConnectingPoint num="1" id="983" /> +<TGConnectingPoint num="2" id="984" /> +<TGConnectingPoint num="3" id="985" /> +<TGConnectingPoint num="4" id="986" /> +<TGConnectingPoint num="5" id="987" /> +<TGConnectingPoint num="6" id="988" /> +<TGConnectingPoint num="7" id="989" /> +<TGConnectingPoint num="8" id="990" /> +<TGConnectingPoint num="9" id="991" /> +<TGConnectingPoint num="10" id="992" /> +<TGConnectingPoint num="11" id="993" /> +<TGConnectingPoint num="12" id="994" /> +<TGConnectingPoint num="13" id="995" /> +<TGConnectingPoint num="14" id="996" /> +<TGConnectingPoint num="15" id="997" /> +<TGConnectingPoint num="16" id="998" /> +<TGConnectingPoint num="17" id="999" /> +<TGConnectingPoint num="18" id="1000" /> +<TGConnectingPoint num="19" id="1001" /> +<TGConnectingPoint num="20" id="1002" /> +<TGConnectingPoint num="21" id="1003" /> +<TGConnectingPoint num="22" id="1004" /> +<TGConnectingPoint num="23" id="1005" /> +<TGConnectingPoint num="24" id="1006" /> +<TGConnectingPoint num="25" id="1007" /> +<TGConnectingPoint num="26" id="1008" /> +<TGConnectingPoint num="27" id="1009" /> +<TGConnectingPoint num="28" id="1010" /> +<TGConnectingPoint num="29" id="1011" /> +<TGConnectingPoint num="30" id="1012" /> +<TGConnectingPoint num="31" id="1013" /> +<TGConnectingPoint num="32" id="1014" /> +<TGConnectingPoint num="33" id="1015" /> +<TGConnectingPoint num="34" id="1016" /> +<TGConnectingPoint num="35" id="1017" /> +<TGConnectingPoint num="36" id="1018" /> +<TGConnectingPoint num="37" id="1019" /> +<TGConnectingPoint num="38" id="1020" /> +<TGConnectingPoint num="39" id="1021" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5108" id="1025" > +<cdparam x="339" y="523" /> +<sizeparam width="163" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="TGComponent" value="null" /> +<TGConnectingPoint num="0" id="1023" /> +<TGConnectingPoint num="1" id="1024" /> +<extraparam> +<Data variable="tmp3" minValue="0" maxValue="10" functionId="0" /> +</extraparam> +</COMPONENT> + +<COMPONENT type="5103" id="1036" > +<cdparam x="375" y="1126" /> +<sizeparam width="90" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="Send signal" value="chout(filler2)" /> +<TGConnectingPoint num="0" id="1026" /> +<TGConnectingPoint num="1" id="1027" /> +<TGConnectingPoint num="2" id="1028" /> +<TGConnectingPoint num="3" id="1029" /> +<TGConnectingPoint num="4" id="1030" /> +<TGConnectingPoint num="5" id="1031" /> +<TGConnectingPoint num="6" id="1032" /> +<TGConnectingPoint num="7" id="1033" /> +<TGConnectingPoint num="8" id="1034" /> +<TGConnectingPoint num="9" id="1035" /> +</COMPONENT> + +<COMPONENT type="5106" id="1077" > +<cdparam x="439" y="391" /> +<sizeparam width="162" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="GenerateEcKey" /> +<TGConnectingPoint num="0" id="1037" /> +<TGConnectingPoint num="1" id="1038" /> +<TGConnectingPoint num="2" id="1039" /> +<TGConnectingPoint num="3" id="1040" /> +<TGConnectingPoint num="4" id="1041" /> +<TGConnectingPoint num="5" id="1042" /> +<TGConnectingPoint num="6" id="1043" /> +<TGConnectingPoint num="7" id="1044" /> +<TGConnectingPoint num="8" id="1045" /> +<TGConnectingPoint num="9" id="1046" /> +<TGConnectingPoint num="10" id="1047" /> +<TGConnectingPoint num="11" id="1048" /> +<TGConnectingPoint num="12" id="1049" /> +<TGConnectingPoint num="13" id="1050" /> +<TGConnectingPoint num="14" id="1051" /> +<TGConnectingPoint num="15" id="1052" /> +<TGConnectingPoint num="16" id="1053" /> +<TGConnectingPoint num="17" id="1054" /> +<TGConnectingPoint num="18" id="1055" /> +<TGConnectingPoint num="19" id="1056" /> +<TGConnectingPoint num="20" id="1057" /> +<TGConnectingPoint num="21" id="1058" /> +<TGConnectingPoint num="22" id="1059" /> +<TGConnectingPoint num="23" id="1060" /> +<TGConnectingPoint num="24" id="1061" /> +<TGConnectingPoint num="25" id="1062" /> +<TGConnectingPoint num="26" id="1063" /> +<TGConnectingPoint num="27" id="1064" /> +<TGConnectingPoint num="28" id="1065" /> +<TGConnectingPoint num="29" id="1066" /> +<TGConnectingPoint num="30" id="1067" /> +<TGConnectingPoint num="31" id="1068" /> +<TGConnectingPoint num="32" id="1069" /> +<TGConnectingPoint num="33" id="1070" /> +<TGConnectingPoint num="34" id="1071" /> +<TGConnectingPoint num="35" id="1072" /> +<TGConnectingPoint num="36" id="1073" /> +<TGConnectingPoint num="37" id="1074" /> +<TGConnectingPoint num="38" id="1075" /> +<TGConnectingPoint num="39" id="1076" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1118" > +<cdparam x="246" y="388" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="error" /> +<TGConnectingPoint num="0" id="1078" /> +<TGConnectingPoint num="1" id="1079" /> +<TGConnectingPoint num="2" id="1080" /> +<TGConnectingPoint num="3" id="1081" /> +<TGConnectingPoint num="4" id="1082" /> +<TGConnectingPoint num="5" id="1083" /> +<TGConnectingPoint num="6" id="1084" /> +<TGConnectingPoint num="7" id="1085" /> +<TGConnectingPoint num="8" id="1086" /> +<TGConnectingPoint num="9" id="1087" /> +<TGConnectingPoint num="10" id="1088" /> +<TGConnectingPoint num="11" id="1089" /> +<TGConnectingPoint num="12" id="1090" /> +<TGConnectingPoint num="13" id="1091" /> +<TGConnectingPoint num="14" id="1092" /> +<TGConnectingPoint num="15" id="1093" /> +<TGConnectingPoint num="16" id="1094" /> +<TGConnectingPoint num="17" id="1095" /> +<TGConnectingPoint num="18" id="1096" /> +<TGConnectingPoint num="19" id="1097" /> +<TGConnectingPoint num="20" id="1098" /> +<TGConnectingPoint num="21" id="1099" /> +<TGConnectingPoint num="22" id="1100" /> +<TGConnectingPoint num="23" id="1101" /> +<TGConnectingPoint num="24" id="1102" /> +<TGConnectingPoint num="25" id="1103" /> +<TGConnectingPoint num="26" id="1104" /> +<TGConnectingPoint num="27" id="1105" /> +<TGConnectingPoint num="28" id="1106" /> +<TGConnectingPoint num="29" id="1107" /> +<TGConnectingPoint num="30" id="1108" /> +<TGConnectingPoint num="31" id="1109" /> +<TGConnectingPoint num="32" id="1110" /> +<TGConnectingPoint num="33" id="1111" /> +<TGConnectingPoint num="34" id="1112" /> +<TGConnectingPoint num="35" id="1113" /> +<TGConnectingPoint num="36" id="1114" /> +<TGConnectingPoint num="37" id="1115" /> +<TGConnectingPoint num="38" id="1116" /> +<TGConnectingPoint num="39" id="1117" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5106" id="1159" > +<cdparam x="357" y="273" /> +<sizeparam width="100" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="State" value="Verify_Sign" /> +<TGConnectingPoint num="0" id="1119" /> +<TGConnectingPoint num="1" id="1120" /> +<TGConnectingPoint num="2" id="1121" /> +<TGConnectingPoint num="3" id="1122" /> +<TGConnectingPoint num="4" id="1123" /> +<TGConnectingPoint num="5" id="1124" /> +<TGConnectingPoint num="6" id="1125" /> +<TGConnectingPoint num="7" id="1126" /> +<TGConnectingPoint num="8" id="1127" /> +<TGConnectingPoint num="9" id="1128" /> +<TGConnectingPoint num="10" id="1129" /> +<TGConnectingPoint num="11" id="1130" /> +<TGConnectingPoint num="12" id="1131" /> +<TGConnectingPoint num="13" id="1132" /> +<TGConnectingPoint num="14" id="1133" /> +<TGConnectingPoint num="15" id="1134" /> +<TGConnectingPoint num="16" id="1135" /> +<TGConnectingPoint num="17" id="1136" /> +<TGConnectingPoint num="18" id="1137" /> +<TGConnectingPoint num="19" id="1138" /> +<TGConnectingPoint num="20" id="1139" /> +<TGConnectingPoint num="21" id="1140" /> +<TGConnectingPoint num="22" id="1141" /> +<TGConnectingPoint num="23" id="1142" /> +<TGConnectingPoint num="24" id="1143" /> +<TGConnectingPoint num="25" id="1144" /> +<TGConnectingPoint num="26" id="1145" /> +<TGConnectingPoint num="27" id="1146" /> +<TGConnectingPoint num="28" id="1147" /> +<TGConnectingPoint num="29" id="1148" /> +<TGConnectingPoint num="30" id="1149" /> +<TGConnectingPoint num="31" id="1150" /> +<TGConnectingPoint num="32" id="1151" /> +<TGConnectingPoint num="33" id="1152" /> +<TGConnectingPoint num="34" id="1153" /> +<TGConnectingPoint num="35" id="1154" /> +<TGConnectingPoint num="36" id="1155" /> +<TGConnectingPoint num="37" id="1156" /> +<TGConnectingPoint num="38" id="1157" /> +<TGConnectingPoint num="39" id="1158" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1170" > +<cdparam x="367" y="151" /> +<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="Receive signal" value="chin(filler)" /> +<TGConnectingPoint num="0" id="1160" /> +<TGConnectingPoint num="1" id="1161" /> +<TGConnectingPoint num="2" id="1162" /> +<TGConnectingPoint num="3" id="1163" /> +<TGConnectingPoint num="4" id="1164" /> +<TGConnectingPoint num="5" id="1165" /> +<TGConnectingPoint num="6" id="1166" /> +<TGConnectingPoint num="7" id="1167" /> +<TGConnectingPoint num="8" id="1168" /> +<TGConnectingPoint num="9" id="1169" /> +</COMPONENT> + +<COMPONENT type="5103" id="1181" > +<cdparam x="292" y="97" /> +<sizeparam width="230" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="Send signal" value="chout(requestBobPublicKeyBundle)" /> +<TGConnectingPoint num="0" id="1171" /> +<TGConnectingPoint num="1" id="1172" /> +<TGConnectingPoint num="2" id="1173" /> +<TGConnectingPoint num="3" id="1174" /> +<TGConnectingPoint num="4" id="1175" /> +<TGConnectingPoint num="5" id="1176" /> +<TGConnectingPoint num="6" id="1177" /> +<TGConnectingPoint num="7" id="1178" /> +<TGConnectingPoint num="8" id="1179" /> +<TGConnectingPoint num="9" id="1180" /> +</COMPONENT> + +<COMPONENT type="5100" id="1183" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="2000" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1182" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +<AVATARStateMachineDiagramPanel name="Server" minX="10" maxX="2500" minY="10" maxY="1500" > +<CONNECTOR type="5102" id="1190" > +<cdparam x="409" y="158" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1189" /> +<P1 x="407" y="112" id="1333" /> +<P2 x="407" y="133" id="1292" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1188" > +<father id="1190" num="0" /> +<cdparam x="407" y="187" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1184" /> +<TGConnectingPoint num="1" id="1185" /> +<TGConnectingPoint num="2" id="1186" /> +<TGConnectingPoint num="3" id="1187" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1197" > +<cdparam x="407" y="70" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1196" /> +<P1 x="407" y="70" id="1343" /> +<P2 x="407" y="82" id="1332" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1195" > +<father id="1197" num="0" /> +<cdparam x="416" y="103" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1191" /> +<TGConnectingPoint num="1" id="1192" /> +<TGConnectingPoint num="2" id="1193" /> +<TGConnectingPoint num="3" id="1194" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1204" > +<cdparam x="395" y="270" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1203" /> +<P1 x="407" y="163" id="1297" /> +<P2 x="407" y="193" id="1280" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1202" > +<father id="1204" num="0" /> +<cdparam x="398" y="298" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1198" /> +<TGConnectingPoint num="1" id="1199" /> +<TGConnectingPoint num="2" id="1200" /> +<TGConnectingPoint num="3" id="1201" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1211" > +<cdparam x="391" y="366" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1210" /> +<P1 x="407" y="223" id="1281" /> +<P2 x="407" y="254" id="1240" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1209" > +<father id="1211" num="0" /> +<cdparam x="394" y="377" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1205" /> +<TGConnectingPoint num="1" id="1206" /> +<TGConnectingPoint num="2" id="1207" /> +<TGConnectingPoint num="3" id="1208" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1218" > +<cdparam x="396" y="458" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1217" /> +<P1 x="407" y="284" id="1245" /> +<P2 x="407" y="310" id="1228" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1216" > +<father id="1218" num="0" /> +<cdparam x="396" y="497" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1212" /> +<TGConnectingPoint num="1" id="1213" /> +<TGConnectingPoint num="2" id="1214" /> +<TGConnectingPoint num="3" id="1215" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<CONNECTOR type="5102" id="1225" > +<cdparam x="389" y="553" /> +<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<infoparam name="connector" value="null" /> +<TGConnectingPoint num="0" id="1224" /> +<P1 x="407" y="340" id="1229" /> +<P2 x="407" y="356" id="1226" /> +<AutomaticDrawing data="true" /> +</CONNECTOR><SUBCOMPONENT type="-1" id="1223" > +<father id="1225" num="0" /> +<cdparam x="395" y="596" /> +<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="List of all parameters of an Avatar SMD transition" value="" /> +<TGConnectingPoint num="0" id="1219" /> +<TGConnectingPoint num="1" id="1220" /> +<TGConnectingPoint num="2" id="1221" /> +<TGConnectingPoint num="3" id="1222" /> +<extraparam> +<guard value="[ ]" /> +<afterMin value="" /> +<afterMax value="" /> +<computeMin value="" /> +<computeMax value="" /> +<probability value="" /> +</extraparam> +</SUBCOMPONENT> + +<COMPONENT type="5101" id="1227" > +<cdparam x="397" y="361" /> +<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="stop state" value="null" /> +<TGConnectingPoint num="0" id="1226" /> +</COMPONENT> + +<COMPONENT type="5103" id="1238" > +<cdparam x="366" y="315" /> +<sizeparam width="82" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Send signal" value="chout(filler)" /> +<TGConnectingPoint num="0" id="1228" /> +<TGConnectingPoint num="1" id="1229" /> +<TGConnectingPoint num="2" id="1230" /> +<TGConnectingPoint num="3" id="1231" /> +<TGConnectingPoint num="4" id="1232" /> +<TGConnectingPoint num="5" id="1233" /> +<TGConnectingPoint num="6" id="1234" /> +<TGConnectingPoint num="7" id="1235" /> +<TGConnectingPoint num="8" id="1236" /> +<TGConnectingPoint num="9" id="1237" /> +</COMPONENT> + +<COMPONENT type="5106" id="1279" > +<cdparam x="312" y="254" /> +<sizeparam width="190" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="Receive_Alice_request" /> +<TGConnectingPoint num="0" id="1239" /> +<TGConnectingPoint num="1" id="1240" /> +<TGConnectingPoint num="2" id="1241" /> +<TGConnectingPoint num="3" id="1242" /> +<TGConnectingPoint num="4" id="1243" /> +<TGConnectingPoint num="5" id="1244" /> +<TGConnectingPoint num="6" id="1245" /> +<TGConnectingPoint num="7" id="1246" /> +<TGConnectingPoint num="8" id="1247" /> +<TGConnectingPoint num="9" id="1248" /> +<TGConnectingPoint num="10" id="1249" /> +<TGConnectingPoint num="11" id="1250" /> +<TGConnectingPoint num="12" id="1251" /> +<TGConnectingPoint num="13" id="1252" /> +<TGConnectingPoint num="14" id="1253" /> +<TGConnectingPoint num="15" id="1254" /> +<TGConnectingPoint num="16" id="1255" /> +<TGConnectingPoint num="17" id="1256" /> +<TGConnectingPoint num="18" id="1257" /> +<TGConnectingPoint num="19" id="1258" /> +<TGConnectingPoint num="20" id="1259" /> +<TGConnectingPoint num="21" id="1260" /> +<TGConnectingPoint num="22" id="1261" /> +<TGConnectingPoint num="23" id="1262" /> +<TGConnectingPoint num="24" id="1263" /> +<TGConnectingPoint num="25" id="1264" /> +<TGConnectingPoint num="26" id="1265" /> +<TGConnectingPoint num="27" id="1266" /> +<TGConnectingPoint num="28" id="1267" /> +<TGConnectingPoint num="29" id="1268" /> +<TGConnectingPoint num="30" id="1269" /> +<TGConnectingPoint num="31" id="1270" /> +<TGConnectingPoint num="32" id="1271" /> +<TGConnectingPoint num="33" id="1272" /> +<TGConnectingPoint num="34" id="1273" /> +<TGConnectingPoint num="35" id="1274" /> +<TGConnectingPoint num="36" id="1275" /> +<TGConnectingPoint num="37" id="1276" /> +<TGConnectingPoint num="38" id="1277" /> +<TGConnectingPoint num="39" id="1278" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1290" > +<cdparam x="293" y="198" /> +<sizeparam width="228" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="chin(requestBobPublicKeyBundle)" /> +<TGConnectingPoint num="0" id="1280" /> +<TGConnectingPoint num="1" id="1281" /> +<TGConnectingPoint num="2" id="1282" /> +<TGConnectingPoint num="3" id="1283" /> +<TGConnectingPoint num="4" id="1284" /> +<TGConnectingPoint num="5" id="1285" /> +<TGConnectingPoint num="6" id="1286" /> +<TGConnectingPoint num="7" id="1287" /> +<TGConnectingPoint num="8" id="1288" /> +<TGConnectingPoint num="9" id="1289" /> +</COMPONENT> + +<COMPONENT type="5106" id="1331" > +<cdparam x="370" y="133" /> +<sizeparam width="74" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="State" value="Store" /> +<TGConnectingPoint num="0" id="1291" /> +<TGConnectingPoint num="1" id="1292" /> +<TGConnectingPoint num="2" id="1293" /> +<TGConnectingPoint num="3" id="1294" /> +<TGConnectingPoint num="4" id="1295" /> +<TGConnectingPoint num="5" id="1296" /> +<TGConnectingPoint num="6" id="1297" /> +<TGConnectingPoint num="7" id="1298" /> +<TGConnectingPoint num="8" id="1299" /> +<TGConnectingPoint num="9" id="1300" /> +<TGConnectingPoint num="10" id="1301" /> +<TGConnectingPoint num="11" id="1302" /> +<TGConnectingPoint num="12" id="1303" /> +<TGConnectingPoint num="13" id="1304" /> +<TGConnectingPoint num="14" id="1305" /> +<TGConnectingPoint num="15" id="1306" /> +<TGConnectingPoint num="16" id="1307" /> +<TGConnectingPoint num="17" id="1308" /> +<TGConnectingPoint num="18" id="1309" /> +<TGConnectingPoint num="19" id="1310" /> +<TGConnectingPoint num="20" id="1311" /> +<TGConnectingPoint num="21" id="1312" /> +<TGConnectingPoint num="22" id="1313" /> +<TGConnectingPoint num="23" id="1314" /> +<TGConnectingPoint num="24" id="1315" /> +<TGConnectingPoint num="25" id="1316" /> +<TGConnectingPoint num="26" id="1317" /> +<TGConnectingPoint num="27" id="1318" /> +<TGConnectingPoint num="28" id="1319" /> +<TGConnectingPoint num="29" id="1320" /> +<TGConnectingPoint num="30" id="1321" /> +<TGConnectingPoint num="31" id="1322" /> +<TGConnectingPoint num="32" id="1323" /> +<TGConnectingPoint num="33" id="1324" /> +<TGConnectingPoint num="34" id="1325" /> +<TGConnectingPoint num="35" id="1326" /> +<TGConnectingPoint num="36" id="1327" /> +<TGConnectingPoint num="37" id="1328" /> +<TGConnectingPoint num="38" id="1329" /> +<TGConnectingPoint num="39" id="1330" /> +<extraparam> +</extraparam> +</COMPONENT> + +<COMPONENT type="5104" id="1342" > +<cdparam x="367" y="87" /> +<sizeparam width="80" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="Receive signal" value="chin(filler)" /> +<TGConnectingPoint num="0" id="1332" /> +<TGConnectingPoint num="1" id="1333" /> +<TGConnectingPoint num="2" id="1334" /> +<TGConnectingPoint num="3" id="1335" /> +<TGConnectingPoint num="4" id="1336" /> +<TGConnectingPoint num="5" id="1337" /> +<TGConnectingPoint num="6" id="1338" /> +<TGConnectingPoint num="7" id="1339" /> +<TGConnectingPoint num="8" id="1340" /> +<TGConnectingPoint num="9" id="1341" /> +</COMPONENT> + +<COMPONENT type="5100" id="1344" > +<cdparam x="400" y="50" /> +<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" /> +<hidden value="false" /> +<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" /> +<infoparam name="start state" value="null" /> +<TGConnectingPoint num="0" id="1343" /> +</COMPONENT> + + +</AVATARStateMachineDiagramPanel> + +</Modeling> + + + + +</TURTLEGMODELING> \ No newline at end of file diff --git a/src/main/java/avatartranslator/AvatarSyntaxChecker.java b/src/main/java/avatartranslator/AvatarSyntaxChecker.java index ae23b52d2699503f2e8ba8f3bfd03b99190d98fb..9e9cbd253a4fcb449eec748fc36d870996402661 100644 --- a/src/main/java/avatartranslator/AvatarSyntaxChecker.java +++ b/src/main/java/avatartranslator/AvatarSyntaxChecker.java @@ -126,6 +126,28 @@ public class AvatarSyntaxChecker { } + public static int isAValidProbabilityExpr(AvatarSpecification _as, AvatarStateMachineOwner _ab, String _expr) { + if (_expr.trim().length() == 0) { + return 0; + } + + String tmp = _expr.replaceAll(" ", "").trim(); + double prob = 0.5; + + try { + prob = new Double(tmp).doubleValue(); + } catch (Exception e) { + return -1; + } + + if ((prob <0) || (prob > 1)) { + return -1; + } + + return 0; + + } + public static int isAValidBoolExpr(AvatarSpecification _as, AvatarStateMachineOwner _ab, String _expr) { if (_expr.trim().length() == 0) { return 0; diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java index 910050a3145a216ed39bd951f2503cd69708e6c7..efa560dc6ea41cb95ff5b504a16a612c489cad8b 100644 --- a/src/main/java/avatartranslator/AvatarTransition.java +++ b/src/main/java/avatartranslator/AvatarTransition.java @@ -98,6 +98,10 @@ public class AvatarTransition extends AvatarStateMachineElement { public void setProbability(double _probability) { probability = _probability; } + public double getProbability() { + return probability; + } + public void addGuard(String _g) { AvatarGuard guard = AvatarGuard.createFromString(this.block, _g); @@ -273,6 +277,7 @@ public class AvatarTransition extends AvatarStateMachineElement { at.setGuard(getGuard()); at.setDelays(getMinDelay(), getMaxDelay()); at.setComputes(getMinCompute(), getMaxCompute()); + at.setProbability(getProbability()); //TraceManager.addDev("-------------- Cloning actions of " + this); for (int i = 0; i < getNbOfAction(); i++) { @@ -300,6 +305,7 @@ public class AvatarTransition extends AvatarStateMachineElement { at.setComputes(getMinCompute(), getMaxCompute()); at.setDelays(getMinDelay(), getMaxDelay()); + at.setProbability(getProbability()); return at; } @@ -367,6 +373,8 @@ public class AvatarTransition extends AvatarStateMachineElement { ret += "minCompute=" + getMinCompute() + " maxcompute=" + getMaxCompute() + "\n"; } + ret += "prob=" + getProbability() + "\n"; + for (AvatarAction a : actions) { String s = a.toString(); if (s.trim().length() > 0) { @@ -400,17 +408,18 @@ public class AvatarTransition extends AvatarStateMachineElement { } public String getNiceName() { + String s = " prob:" + getProbability(); if (isGuarded()) - return "Transition (guard=" + guard + ", ...)"; + return "Transition (guard=" + guard + ", ...)" + s; if (hasDelay()) - return "Transition (delay=(" + minDelay + ", " + maxDelay + "), ...)"; + return "Transition (delay=(" + minDelay + ", " + maxDelay + "), ...)" + s; if (actions.size() > 0) { - return "Transition (" + actions.get(0) + ", ...)"; + return "Transition (" + actions.get(0) + ", ...)" + s; } - return "Empty transition"; + return "Empty transition" + s; } public void translate(AvatarTranslator translator, Object arg) { diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java index 740b5f77a4f1aa001fdc815986ff80737f298870..46f98e7aae524b706f9d17d2b43df083d223383e 100644 --- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java +++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java @@ -1,26 +1,26 @@ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * + * * ludovic.apvrille AT enst.fr - * + * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. - * + * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". - * + * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. - * + * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, @@ -31,15 +31,12 @@ * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. - * + * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator.directsimulation; import avatartranslator.*; @@ -51,20 +48,21 @@ import myutil.TraceManager; import java.util.Vector; /** - * Class AvatarSimulationBlock - * Avatar: notion of block in simulation - * Creation: 14/12/2010 - * @version 1.0 14/12/2010 - * @author Ludovic APVRILLE + * Class AvatarSimulationBlock + * Avatar: notion of block in simulation + * Creation: 14/12/2010 + * + * @author Ludovic APVRILLE + * @version 1.0 14/12/2010 */ -public class AvatarSimulationBlock { +public class AvatarSimulationBlock { public final static int NOT_STARTED = 0; public final static int STARTED = 1; public final static int COMPLETED = 2; private AvatarBlock block; private AvatarSimulationTransaction lastTransaction; - private Vector <AvatarSimulationTransaction> transactions; + private Vector<AvatarSimulationTransaction> transactions; private boolean completed; public boolean selected; // Free use for graphic purpose private int forcedRandom = -1; @@ -107,7 +105,7 @@ public class AvatarSimulationBlock { } public String toString() { - return "AvatarSimulationBlock:" + getName(); + return "AvatarSimulationBlock:" + getName(); } public int getID() { @@ -171,7 +169,8 @@ public class AvatarSimulationBlock { AvatarSimulationPendingTransaction aspt; AvatarStateMachineElement asme; boolean guardOk; - for(int i=0; i<lastTransaction.executedElement.nbOfNexts(); i++) { + //double prob = 0.5; + for (int i = 0; i < lastTransaction.executedElement.nbOfNexts(); i++) { asme = lastTransaction.executedElement.getNext(i); if (asme == null) { @@ -180,10 +179,11 @@ public class AvatarSimulationBlock { guardOk = true; // Guard on transition ? -> must evaluate the guard! if (asme instanceof AvatarTransition) { - AvatarTransition at = (AvatarTransition)(asme); + AvatarTransition at = (AvatarTransition) (asme); + //prob = at.getProbability(); if (at.isGuarded()) { // Must evaluate the guard - String guard = at.getGuard().toString (); + String guard = at.getGuard().toString(); String s = Conversion.replaceAllString(guard, "[", "").trim(); s = Conversion.replaceAllString(s, "]", "").trim(); guardOk = evaluateBoolExpression(s, lastTransaction.attributeValues); @@ -191,29 +191,31 @@ public class AvatarSimulationBlock { } } - if(guardOk) { + if (guardOk) { aspt = new AvatarSimulationPendingTransaction(); aspt.asb = this; + //aspt.probability = prob; aspt.elementToExecute = lastTransaction.executedElement.getNext(i); aspt.previouslyExecutedElement = lastTransaction.executedElement; if ((aspt.elementToExecute instanceof AvatarTransition) && (lastTransaction.executedElement instanceof AvatarState)) { - AvatarTransition trans = (AvatarTransition)(aspt.elementToExecute); - if (trans.getNbOfAction() == 0){ + AvatarTransition trans = (AvatarTransition) (aspt.elementToExecute); + if (trans.getNbOfAction() == 0) { // empty transition, "empty" is the meaning of actions -> look for an action after - if(trans.getNext(0) != null) { + if (trans.getNext(0) != null) { if (trans.getNext(0) instanceof AvatarActionOnSignal) { aspt.involvedElement = trans; aspt.elementToExecute = trans.getNext(0); } else if (trans.getNext(0) instanceof AvatarRandom) { - aspt.involvedElement = trans; + aspt.involvedElement = trans; aspt.elementToExecute = trans.getNext(0); - } + } } } } if (aspt.elementToExecute instanceof AvatarTransition) { - AvatarTransition trans = (AvatarTransition)(aspt.elementToExecute); + AvatarTransition trans = (AvatarTransition) (aspt.elementToExecute); + aspt.probability = trans.getProbability(); if (trans.hasDelay()) { aspt.myMinDelay = evaluateIntExpression(trans.getMinDelay(), lastTransaction.attributeValues); aspt.myMaxDelay = evaluateIntExpression(trans.getMaxDelay(), lastTransaction.attributeValues); @@ -221,12 +223,13 @@ public class AvatarSimulationBlock { if (lastTransaction != null) { if (lastTransaction.clockValueWhenFinished < _clockValue) { aspt.hasElapsedTime = true; - aspt.elapsedTime = (int)(_clockValue - lastTransaction.clockValueWhenFinished); + aspt.elapsedTime = (int) (_clockValue - lastTransaction.clockValueWhenFinished); } } + } } else if (aspt.involvedElement instanceof AvatarTransition) { - AvatarTransition trans = (AvatarTransition)(aspt.involvedElement); + AvatarTransition trans = (AvatarTransition) (aspt.involvedElement); if (trans.hasDelay()) { aspt.myMinDelay = evaluateIntExpression(trans.getMinDelay(), lastTransaction.attributeValues); aspt.myMaxDelay = evaluateIntExpression(trans.getMaxDelay(), lastTransaction.attributeValues); @@ -237,7 +240,7 @@ public class AvatarSimulationBlock { if (lastTransaction != null) { if (lastTransaction.clockValueWhenFinished < _clockValue) { aspt.hasElapsedTime = true; - aspt.elapsedTime = (int)(_clockValue - lastTransaction.clockValueWhenFinished); + aspt.elapsedTime = (int) (_clockValue - lastTransaction.clockValueWhenFinished); } } } @@ -245,8 +248,8 @@ public class AvatarSimulationBlock { aspt.clockValue = _clockValue; if (aspt.hasElapsedTime) { - aspt.myMinDelay = aspt.myMinDelay -aspt.elapsedTime; - aspt.myMaxDelay = aspt.myMaxDelay -aspt.elapsedTime; + aspt.myMinDelay = aspt.myMinDelay - aspt.elapsedTime; + aspt.myMaxDelay = aspt.myMaxDelay - aspt.elapsedTime; } if (aspt.hasDelay) { @@ -276,7 +279,7 @@ public class AvatarSimulationBlock { } - public void executeElement(Vector<AvatarSimulationTransaction>_allTransactions, AvatarStateMachineElement _elt, long _clockValue, AvatarSimulationPendingTransaction _aspt, long _bunchid) { + public void executeElement(Vector<AvatarSimulationTransaction> _allTransactions, AvatarStateMachineElement _elt, long _clockValue, AvatarSimulationPendingTransaction _aspt, long _bunchid) { // Stop state if (_elt instanceof AvatarStopState) { makeExecutedTransaction(_allTransactions, _elt, _clockValue, _aspt, _bunchid); @@ -330,12 +333,12 @@ public class AvatarSimulationBlock { if (_aspt != null) { _aspt.clockValueAtEnd = _clockValue; if (_aspt.hasClock) { - if(_aspt.hasElapsedTime) { + if (_aspt.hasElapsedTime) { ast.duration = _aspt.elapsedTime + _aspt.selectedDuration; } else { ast.duration = _aspt.selectedDuration; - ast.duration = Math.min(_aspt.myMaxDuration+_aspt.elapsedTime, ast.duration); - ast.duration = Math.max(_aspt.myMinDuration+_aspt.elapsedTime, ast.duration); + ast.duration = Math.min(_aspt.myMaxDuration + _aspt.elapsedTime, ast.duration); + ast.duration = Math.max(_aspt.myMinDuration + _aspt.elapsedTime, ast.duration); } ast.clockValueWhenFinished = _aspt.selectedDuration + _clockValue; _aspt.clockValueAtEnd = ast.clockValueWhenFinished; @@ -348,23 +351,23 @@ public class AvatarSimulationBlock { Vector<String> attributeValues = new Vector<String>(); String s; if (lastTransaction == null) { - for(AvatarAttribute aa: block.getAttributes()) { + for (AvatarAttribute aa : block.getAttributes()) { s = new String(aa.getInitialValue()); attributeValues.add(s); } } else { // Recopy of previous values - for(String ss: lastTransaction.attributeValues) { - attributeValues.add(""+ss); + for (String ss : lastTransaction.attributeValues) { + attributeValues.add("" + ss); } // Transition? if (_elt instanceof AvatarTransition) { - at = (AvatarTransition)(_elt); + at = (AvatarTransition) (_elt); // Must compute new values of attributes if (at.hasActions()) { actions = new Vector<String>(); - for(i=0; i<at.getNbOfAction(); i++) { - action = at.getAction(i).toString (); + for (i = 0; i < at.getNbOfAction(); i++) { + action = at.getAction(i).toString(); //TraceManager.addDev("action #" + i + " = " + action); makeAction(action, attributeValues, actions); } @@ -374,18 +377,18 @@ public class AvatarSimulationBlock { // Random? if (_elt instanceof AvatarRandom) { - AvatarRandom random = (AvatarRandom)(_elt); + AvatarRandom random = (AvatarRandom) (_elt); index = block.getIndexOfAvatarAttributeWithName(random.getVariable()); - if (index >-1) { + if (index > -1) { int valMin = evaluateIntExpression(random.getMinValue(), attributeValues); int valMax = evaluateIntExpression(random.getMaxValue(), attributeValues); - if ((forcedRandom > -1) && (forcedRandom >= valMin) && (forcedRandom <= valMax)){ + if ((forcedRandom > -1) && (forcedRandom >= valMin) && (forcedRandom <= valMax)) { // Use provided value as random value valMin = forcedRandom; } else { // randomnly select a value - valMin = (int)(Math.floor((Math.random()) * (valMax - valMin + 1))) + valMin; + valMin = (int) (Math.floor((Math.random()) * (valMax - valMin + 1))) + valMin; } attributeValues.remove(index); attributeValues.add(index, "" + valMin); @@ -396,17 +399,17 @@ public class AvatarSimulationBlock { // Action on signal? if (_elt instanceof AvatarActionOnSignal) { - AvatarActionOnSignal aaos = (AvatarActionOnSignal)_elt; + AvatarActionOnSignal aaos = (AvatarActionOnSignal) _elt; if (_aspt != null) { // Must put the right parameters if (_aspt.isSynchronous) { // Synchronous call - if ((_aspt.isSending) && ((_aspt.linkedTransaction != null ) || (_aspt.linkedTransactions != null))){ + if ((_aspt.isSending) && ((_aspt.linkedTransaction != null) || (_aspt.linkedTransactions != null))) { // Synchronous Sending! // Must be in the receiving transaction the right parameters Vector<String> parameters = new Vector<String>(); //TraceManager.addDev("Adding value in :" + aaos); - for(i=0; i<aaos.getNbOfValues(); i++) { + for (i = 0; i < aaos.getNbOfValues(); i++) { value = aaos.getValue(i); // Must get the type of the value //TraceManager.addDev("Sending aaos: " + aaos + " block=" + block.getName()); @@ -432,16 +435,16 @@ public class AvatarSimulationBlock { } if (_aspt.linkedTransactions != null) { - for(AvatarSimulationPendingTransaction aspt0: _aspt.linkedTransactions) { + for (AvatarSimulationPendingTransaction aspt0 : _aspt.linkedTransactions) { aspt0.parameters = parameters; } } //} - } else if ((!(_aspt.isSending)) && (_aspt.parameters != null)){ + } else if ((!(_aspt.isSending)) && (_aspt.parameters != null)) { //TraceManager.addDev("Reading value " + aaos); // Synchronous Receiving String myAction = ""; - for(i=0; i<aaos.getNbOfValues(); i++) { + for (i = 0; i < aaos.getNbOfValues(); i++) { //TraceManager.addDev("Reading value #" + i); param = _aspt.parameters.get(i); name = aaos.getValue(i); @@ -467,13 +470,13 @@ public class AvatarSimulationBlock { } else { // Asynchronous call - if ((_aspt.isSending) && (_aspt.linkedAsynchronousMessage != null)){ + if ((_aspt.isSending) && (_aspt.linkedAsynchronousMessage != null)) { // Asynchronous Sending String myAction = ""; _aspt.linkedAsynchronousMessage.firstTransaction = ast; ast.sentMessage = _aspt.linkedAsynchronousMessage; - for(i=0; i<aaos.getNbOfValues(); i++) { + for (i = 0; i < aaos.getNbOfValues(); i++) { value = aaos.getValue(i); // Must get the type of the value avat = aaos.getSignal().getListOfAttributes().get(i); @@ -507,7 +510,7 @@ public class AvatarSimulationBlock { if (_aspt.linkedAsynchronousMessage.firstTransaction == null) { TraceManager.addDev("NULL FIRST TRANSACTION !!!"); } - for(i=0; i<aaos.getNbOfValues(); i++) { + for (i = 0; i < aaos.getNbOfValues(); i++) { param = _aspt.linkedAsynchronousMessage.getParameters().get(i); name = aaos.getValue(i); index = block.getIndexOfAvatarAttributeWithName(name); @@ -547,9 +550,9 @@ public class AvatarSimulationBlock { String nameOfMethod; int ind; - AvatarAction action = AvatarTerm.createActionFromString (block, _action); + AvatarAction action = AvatarTerm.createActionFromString(block, _action); // TODO: use the new AvatarAction class instead of re-parsing - if (action.isAMethodCall ()) { + if (action.isAMethodCall()) { // Evaluate all elements of the method call! ind = _action.indexOf("("); if (ind == -1) { @@ -557,17 +560,17 @@ public class AvatarSimulationBlock { } nameOfVar = _action.substring(0, ind).trim(); - act = _action.substring(ind+1, _action.length()).trim(); + act = _action.substring(ind + 1, _action.length()).trim(); ind = act.lastIndexOf(")"); - if(ind == -1) { + if (ind == -1) { return; } act = act.substring(0, ind); ind = nameOfVar.indexOf("="); if (ind != -1) { - nameOfMethod = nameOfVar.substring(ind+1, nameOfVar.length()); + nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length()); } else { nameOfMethod = nameOfVar; } @@ -577,13 +580,13 @@ public class AvatarSimulationBlock { String s; int indexAtt; int cpt = 0; - for(int i=0; i<params.length; i++) { + for (int i = 0; i < params.length; i++) { s = params[i].trim(); if (s.length() > 0) { indexAtt = block.getIndexOfAvatarAttributeWithName(s); //TraceManager.addDev("indexAtt=" + indexAtt + " s=" + s); if (indexAtt > -1) { - if (cpt>0) { + if (cpt > 0) { parameters += ", "; } parameters += _attributeValues.get(indexAtt); @@ -602,13 +605,12 @@ public class AvatarSimulationBlock { return; } - nameOfVar= _action.substring(0, ind).trim(); - act = _action.substring(ind+1, _action.length()); + nameOfVar = _action.substring(0, ind).trim(); + act = _action.substring(ind + 1, _action.length()); //TraceManager.addDev("1- Working on attribute =" + nameOfVar + " action=" + _action); - // Variable //TraceManager.addDev("2- Working on attribute =" + nameOfVar); int indexVar = block.getIndexOfAvatarAttributeWithName(nameOfVar); @@ -619,12 +621,12 @@ public class AvatarSimulationBlock { int result = evaluateIntExpression(act, _attributeValues); _actions.add(nameOfVar + " = " + result); _attributeValues.remove(indexVar); - _attributeValues.add(indexVar, ""+result); + _attributeValues.add(indexVar, "" + result); } else if (type == AvatarType.BOOLEAN) { boolean bool = evaluateBoolExpression(act, _attributeValues); _actions.add(nameOfVar + " = " + bool); _attributeValues.remove(indexVar); - _attributeValues.add(indexVar, ""+bool); + _attributeValues.add(indexVar, "" + bool); } } @@ -633,7 +635,6 @@ public class AvatarSimulationBlock { } - public void addExecutedTransaction(Vector<AvatarSimulationTransaction> _allTransactions, AvatarSimulationTransaction _ast) { transactions.add(_ast); lastTransaction = _ast; @@ -642,9 +643,9 @@ public class AvatarSimulationBlock { public void removeLastTransaction(AvatarSimulationTransaction _ast) { if (lastTransaction == _ast) { - transactions.removeElementAt(transactions.size()-1); + transactions.removeElementAt(transactions.size() - 1); if (transactions.size() > 0) { - lastTransaction = transactions.get(transactions.size()-1); + lastTransaction = transactions.get(transactions.size() - 1); } else { lastTransaction = null; } @@ -666,28 +667,28 @@ public class AvatarSimulationBlock { public int evaluateIntExpression(String _expr, Vector<String> _attributeValues) { String act = _expr; int cpt = 0; - for(String attrValue: _attributeValues) { + for (String attrValue : _attributeValues) { if (attrValue.trim().startsWith("-")) { attrValue = "(0" + attrValue + ")"; } act = Conversion.putVariableValueInString(AvatarSpecification.ops, act, getAttributeName(cpt), attrValue); - cpt ++; + cpt++; } //TraceManager.addDev("Evaluating expression: " + act); - return (int)(new IntExpressionEvaluator().getResultOf(act)); + return (int) (new IntExpressionEvaluator().getResultOf(act)); } public boolean evaluateBoolExpression(String _expr, Vector<String> _attributeValues) { String act = _expr; int cpt = 0; - for(String attrValue: _attributeValues) { + for (String attrValue : _attributeValues) { if (attrValue.trim().startsWith("-")) { attrValue = "(0" + attrValue + ")"; } act = Conversion.putVariableValueInString(AvatarSpecification.ops, act, getAttributeName(cpt), attrValue); - cpt ++; + cpt++; } BoolExpressionEvaluator bee = new BoolExpressionEvaluator(); diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationPendingTransaction.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationPendingTransaction.java index bb29dd5e5ebb6248d5f47925d39a5e38e289da8b..2aa88a425b0572dd57d275070d5a088704cf8820 100644 --- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationPendingTransaction.java +++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationPendingTransaction.java @@ -100,6 +100,9 @@ public class AvatarSimulationPendingTransaction { // Lost public boolean isLost; + // Probability of this transaction + public double probability = 0.5; + public AvatarSimulationPendingTransaction() { diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java b/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java index 41a19897311a1e76b8c35ea9b929bf984729b568..25a4132077f3705725452437a5c157567724c0fd 100644 --- a/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java +++ b/src/main/java/avatartranslator/directsimulation/AvatarSpecificationSimulation.java @@ -1,26 +1,26 @@ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * + * * ludovic.apvrille AT enst.fr - * + * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. - * + * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". - * + * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. - * + * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, @@ -31,15 +31,12 @@ * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. - * + * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ - - - package avatartranslator.directsimulation; import avatartranslator.*; @@ -51,13 +48,14 @@ import java.util.Vector; /** - * Class AvatarSpecification - * Avatar specification - * Creation: 13/12/2010 - * @version 1.0 13/12/2010 - * @author Ludovic APVRILLE + * Class AvatarSpecification + * Avatar specification + * Creation: 13/12/2010 + * + * @author Ludovic APVRILLE + * @version 1.0 13/12/2010 */ -public class AvatarSpecificationSimulation { +public class AvatarSpecificationSimulation { public static int MAX_TRANSACTION_IN_A_ROW = 1000; public static int MAX_TRANSACTIONS = 100000; @@ -128,7 +126,7 @@ public class AvatarSpecificationSimulation { public void computeSelectedSimulationBlocks() { selectedBlocks = new Vector<AvatarSimulationBlock>(); - for (AvatarSimulationBlock block: blocks) { + for (AvatarSimulationBlock block : blocks) { if (block.selected) { selectedBlocks.add(block); } @@ -156,9 +154,9 @@ public class AvatarSpecificationSimulation { // Remove composite states avspec.removeCompositeStates(); - + // Remove library function calls - avspec.removeLibraryFunctionCalls (); + avspec.removeLibraryFunctionCalls(); // Remove timers avspec.removeTimers(); @@ -166,10 +164,10 @@ public class AvatarSpecificationSimulation { // Robustness avspec.makeRobustness(); - // remove FIFOs - //avspec.removeFIFOs(2); + // remove FIFOs + //avspec.removeFIFOs(2); - TraceManager.addDev("-------Spec:" + avspec.toString() + "--------"); + //TraceManager.addDev("-------Spec:" + avspec.toString() + "--------"); } public void reset() { @@ -191,14 +189,14 @@ public class AvatarSpecificationSimulation { int cpt = 0; Vector<AvatarSimulationBlock> tmpblocks = blocks; blocks = new Vector<AvatarSimulationBlock>(); - for(AvatarBlock block: avspec.getListOfBlocks()) { + for (AvatarBlock block : avspec.getListOfBlocks()) { if (block.hasARealBehaviour()) { AvatarSimulationBlock asb = new AvatarSimulationBlock(block); blocks.add(asb); if (tmpblocks != null) { asb.selected = tmpblocks.get(cpt).selected; } - cpt ++; + cpt++; } } //TraceManager.addDev("Nb of simulated blocks :" + blocks.size() + "\n"); @@ -233,135 +231,134 @@ public class AvatarSpecificationSimulation { //boolean executeNextState; - while(true) { + while (true) { //TraceManager.addDev("State=" + state); - switch(state) { - case INITIALIZE: - //TraceManager.addDev("-> -> INITIALIZE"); - initialize(); - setState(RESET); - break; + switch (state) { + case INITIALIZE: + //TraceManager.addDev("-> -> INITIALIZE"); + initialize(); + setState(RESET); + break; - case RESET: - //TraceManager.addDev("-> -> RESET"); - reset(); - // Execute silent transactions if necessary - setState(FIRST); - break; + case RESET: + //TraceManager.addDev("-> -> RESET"); + reset(); + // Execute silent transactions if necessary + setState(FIRST); + break; - case FIRST: - //TraceManager.addDev("-> -> FIRST"); - //stopped = false; - AvatarSimulationPendingTransaction silent; - int maxNb = 0; - while(maxNb < 50) { - gatherPendingTransactions(); - //TraceManager.addDev("Gather done"); - silent = getSilentTransactionToExecute(pendingTransactions); - if (silent == null) { - setState(GATHER); - break; + case FIRST: + //TraceManager.addDev("-> -> FIRST"); + //stopped = false; + AvatarSimulationPendingTransaction silent; + int maxNb = 0; + while (maxNb < 50) { + gatherPendingTransactions(); + //TraceManager.addDev("Gather done"); + silent = getSilentTransactionToExecute(pendingTransactions); + if (silent == null) { + setState(GATHER); + break; - } else { - //TraceManager.addDev("Second option"); - maxNb ++; - // Must execute the silent pending transactions until none available - Vector<AvatarSimulationPendingTransaction> vect=new Vector<AvatarSimulationPendingTransaction>(); - vect.add(silent); - performSelectedTransactions(vect); - //nbOfCommands = 1; - //nbOfCommandsActivated = true; - //TraceManager.addDev("Second option done"); - setState(EXECUTE); + } else { + //TraceManager.addDev("Second option"); + maxNb++; + // Must execute the silent pending transactions until none available + Vector<AvatarSimulationPendingTransaction> vect = new Vector<AvatarSimulationPendingTransaction>(); + vect.add(silent); + performSelectedTransactions(vect); + //nbOfCommands = 1; + //nbOfCommandsActivated = true; + //TraceManager.addDev("Second option done"); + setState(EXECUTE); + } } - } - break; - + break; - case GATHER: - //TraceManager.addDev("-> -> GATHER"); - gatherPendingTransactions(); - if (pendingTransactions.size() == 0) { - setState(TERMINATED); - //TraceManager.addDev("No more pending transactions"); - } else { - //TraceManager.addDev("pending transactions"); - if ((nbOfCommandsActivated) && (nbOfCommands < 1)) { - //TraceManager.addDev("1. pending transactions"); - if (getSilentTransactionToExecute(pendingTransactions) == null) { - //TraceManager.addDev("Dont execute"); - setState(DONT_EXECUTE); + case GATHER: + //TraceManager.addDev("-> -> GATHER"); + gatherPendingTransactions(); + if (pendingTransactions.size() == 0) { + setState(TERMINATED); + //TraceManager.addDev("No more pending transactions"); + } else { + //TraceManager.addDev("pending transactions"); + if ((nbOfCommandsActivated) && (nbOfCommands < 1)) { + //TraceManager.addDev("1. pending transactions"); + if (getSilentTransactionToExecute(pendingTransactions) == null) { + //TraceManager.addDev("Dont execute"); + setState(DONT_EXECUTE); + } else { + //TraceManager.addDev("Execute"); + setState(EXECUTE); + stopped = false; + } } else { - //TraceManager.addDev("Execute"); + //TraceManager.addDev("2. pending transactions"); setState(EXECUTE); - stopped = false; } - } else { - //TraceManager.addDev("2. pending transactions"); - setState(EXECUTE); } - } - break; + break; - case EXECUTE: - //TraceManager.addDev("-> -> EXECUTE"); - silentTransactionExecuted = false; - selectedTransactions = selectTransactions(pendingTransactions); + case EXECUTE: + //TraceManager.addDev("-> -> EXECUTE"); + silentTransactionExecuted = false; + selectedTransactions = selectTransactions(pendingTransactions); - if (selectedTransactions.size() == 0) { - setState(TERMINATED); - TraceManager.addDev("Deadlock: no transaction can be selected"); - } else { - //TraceManager.addDev("performSelectedTrans?"); - if (performSelectedTransactions(selectedTransactions)) { - if (!silentTransactionExecuted) { - if (nbOfCommandsActivated) { - nbOfCommands --; + if (selectedTransactions.size() == 0) { + setState(TERMINATED); + TraceManager.addDev("Deadlock: no transaction can be selected"); + } else { + //TraceManager.addDev("performSelectedTrans?"); + if (performSelectedTransactions(selectedTransactions)) { + if (!silentTransactionExecuted) { + if (nbOfCommandsActivated) { + nbOfCommands--; + } } - } - // If breakpoint at the end of selectTransactions -> set the nb of commands to 0 - for (AvatarSimulationPendingTransaction tr: selectedTransactions) { - AvatarStateMachineElement elt = tr.elementToExecute.getNext(0); - if (elt != null) { - if (elt.hasBreakpoint()) { - nbOfCommands = 0; - TraceManager.addDev("Brk reached"); + // If breakpoint at the end of selectTransactions -> set the nb of commands to 0 + for (AvatarSimulationPendingTransaction tr : selectedTransactions) { + AvatarStateMachineElement elt = tr.elementToExecute.getNext(0); + if (elt != null) { + if (elt.hasBreakpoint()) { + nbOfCommands = 0; + TraceManager.addDev("Brk reached"); + } } } - } - if (asi != null) { - asi.updateTransactionAndTime(allTransactions.size(), clockValue); + if (asi != null) { + asi.updateTransactionAndTime(allTransactions.size(), clockValue); + } + setState(GATHER); + } else { + setState(TERMINATED); + TraceManager.addDev("Error when executing transaction"); } - setState(GATHER); - } else { - setState(TERMINATED); - TraceManager.addDev("Error when executing transaction"); } - } - break; + break; - case DONT_EXECUTE: - //TraceManager.addDev("-> -> WAIT FOR EXECUTE"); - waitForExecute(); - break; + case DONT_EXECUTE: + //TraceManager.addDev("-> -> WAIT FOR EXECUTE"); + waitForExecute(); + break; - case TERMINATED: - TraceManager.addDev("-> -> TERMINATED"); - waitForResetOrNewState(); - break; + case TERMINATED: + TraceManager.addDev("-> -> TERMINATED"); + waitForResetOrNewState(); + break; - case KILLED: - TraceManager.addDev("-> -> KILLED"); - TraceManager.addDev("Simulation killed"); - return; + case KILLED: + TraceManager.addDev("-> -> KILLED"); + TraceManager.addDev("Simulation killed"); + return; - default: - TraceManager.addDev("-> -> UNKNOWN"); - TraceManager.addDev("Unknown state"); - setState(KILLED); + default: + TraceManager.addDev("-> -> UNKNOWN"); + TraceManager.addDev("Unknown state"); + setState(KILLED); } computeExternalCommands(); @@ -371,22 +368,24 @@ public class AvatarSpecificationSimulation { } public synchronized void waitForExecute() { - while(!reset && !newState && !killed && !go) { + while (!reset && !newState && !killed && !go) { try { wait(); - } catch(Exception e){} + } catch (Exception e) { + } } } public synchronized void waitForResetOrNewState() { - while(!reset && !newState && !killed) { + while (!reset && !newState && !killed) { try { wait(); - } catch(Exception e){} + } catch (Exception e) { + } } } - public synchronized void computeExternalCommands() { + public synchronized void computeExternalCommands() { //TraceManager.addDev("Computing external command"); if (state == KILLED) { @@ -426,7 +425,7 @@ public class AvatarSpecificationSimulation { setState(DONT_EXECUTE); } - if (go && (state == DONT_EXECUTE)) { + if (go && (state == DONT_EXECUTE)) { go = false; setState(EXECUTE); } @@ -498,7 +497,7 @@ public class AvatarSpecificationSimulation { pendingTransactions.clear(); // Gather all pending transactions from blocks - for(AvatarSimulationBlock asb: blocks) { + for (AvatarSimulationBlock asb : blocks) { pendingTransactions.addAll(asb.getPendingTransactions(allTransactions, clockValue, MAX_TRANSACTION_IN_A_ROW, bunchid)); } @@ -516,7 +515,7 @@ public class AvatarSpecificationSimulation { String res; AvatarBlock ab; int i; - for(AvatarSimulationPendingTransaction aspt: pendingTransactions) { + for (AvatarSimulationPendingTransaction aspt : pendingTransactions) { if (aspt.hasDelay) { aspt.myMinDuration = aspt.myMinDelay; aspt.myMaxDuration = aspt.myMaxDelay; @@ -531,9 +530,9 @@ public class AvatarSpecificationSimulation { } // Work on signals - for(AvatarSimulationPendingTransaction aspt: pendingTransactions) { + for (AvatarSimulationPendingTransaction aspt : pendingTransactions) { if (aspt.elementToExecute instanceof AvatarActionOnSignal) { - workOnAvatarActionOnSignalTransaction(ll, aspt, (AvatarActionOnSignal)(aspt.elementToExecute)); + workOnAvatarActionOnSignalTransaction(ll, aspt, (AvatarActionOnSignal) (aspt.elementToExecute)); } else { ll.add(aspt); } @@ -550,9 +549,9 @@ public class AvatarSpecificationSimulation { ll = new Vector<AvatarSimulationPendingTransaction>(); int nbOfPureLogicalTransitions = 0; - for(AvatarSimulationPendingTransaction aspt: pendingTransactions) { + for (AvatarSimulationPendingTransaction aspt : pendingTransactions) { if (!(aspt.hasDelay)) { - nbOfPureLogicalTransitions ++; + nbOfPureLogicalTransitions++; } } @@ -563,9 +562,9 @@ public class AvatarSpecificationSimulation { }*/ boolean hasSilentTransaction = false; - if (nbOfPureLogicalTransitions >0) { + if (nbOfPureLogicalTransitions > 0) { //TraceManager.addDev("Pure logical transaction"); - for(AvatarSimulationPendingTransaction aspt: pendingTransactions) { + for (AvatarSimulationPendingTransaction aspt : pendingTransactions) { if (!aspt.hasDelay) { if (isASilentTransaction(aspt, pendingTransactions)) { hasSilentTransaction = true; @@ -580,7 +579,7 @@ public class AvatarSpecificationSimulation { // Must keep only silent transactions //TraceManager.addDev("has silent logical transaction"); ll = new Vector<AvatarSimulationPendingTransaction>(); - for(AvatarSimulationPendingTransaction aspt: pendingTransactions) { + for (AvatarSimulationPendingTransaction aspt : pendingTransactions) { if (isASilentTransaction(aspt, pendingTransactions)) { ll.add(aspt); } @@ -598,7 +597,7 @@ public class AvatarSpecificationSimulation { int maxDuration = Integer.MAX_VALUE; int min, max; - for(AvatarSimulationPendingTransaction aspt: pendingTransactions) { + for (AvatarSimulationPendingTransaction aspt : pendingTransactions) { if (aspt.hasDelay) { if (aspt.myMinDuration < minMin) { minMin = aspt.myMinDuration; @@ -623,7 +622,7 @@ public class AvatarSpecificationSimulation { // Must compute the min index, and the max duration // We put in ll all transactions that are between the min and the max of the selected index AvatarSimulationPendingTransaction aspt_tmp = pendingTransactions.get(indexMin); - for(AvatarSimulationPendingTransaction aspt1: pendingTransactions) { + for (AvatarSimulationPendingTransaction aspt1 : pendingTransactions) { //TraceManager.addDev("aspt1 min=" + aspt1.myMinDuration + " max autre=" + aspt_tmp.myMaxDuration); if (aspt1.myMinDuration <= aspt_tmp.myMaxDuration) { ll.add(aspt1); @@ -646,8 +645,8 @@ public class AvatarSpecificationSimulation { public boolean isASilentTransaction(AvatarSimulationPendingTransaction aspt, Vector<AvatarSimulationPendingTransaction> _pendingTransactions) { if (aspt.elementToExecute instanceof AvatarTransition) { - AvatarTransition atr = (AvatarTransition)(aspt.elementToExecute); - if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())){ + AvatarTransition atr = (AvatarTransition) (aspt.elementToExecute); + if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())) { if ((aspt.previouslyExecutedElement != null) && (aspt.previouslyExecutedElement.nbOfNexts() < 2)) { //TraceManager.addDev("Stage 1"); if (nbOfTransactions(aspt.asb, _pendingTransactions) < 2) { @@ -657,7 +656,7 @@ public class AvatarSpecificationSimulation { } } // State entering? - } else if (((aspt.elementToExecute instanceof AvatarState) || (aspt.elementToExecute instanceof AvatarStopState))) { + } else if (((aspt.elementToExecute instanceof AvatarState) || (aspt.elementToExecute instanceof AvatarStopState))) { if (nbOfTransactions(aspt.asb, _pendingTransactions) < 2) { return true; } @@ -704,9 +703,9 @@ public class AvatarSpecificationSimulation { //TraceManager.addDev("Found a synchronous signal"); transactions.add(_aspt); _aspt.isBroadcast = true; - for(AvatarSimulationPendingTransaction otherTransaction: pendingTransactions) { - if ((otherTransaction != _aspt) && (otherTransaction.elementToExecute instanceof AvatarActionOnSignal)){ - AvatarSignal sig = ((AvatarActionOnSignal)(otherTransaction.elementToExecute)).getSignal(); + for (AvatarSimulationPendingTransaction otherTransaction : pendingTransactions) { + if ((otherTransaction != _aspt) && (otherTransaction.elementToExecute instanceof AvatarActionOnSignal)) { + AvatarSignal sig = ((AvatarActionOnSignal) (otherTransaction.elementToExecute)).getSignal(); AvatarRelation rel = avspec.getAvatarRelationWithSignal(sig); if (rel == ar) { int index1 = rel.getIndexOfSignal(sig); @@ -730,11 +729,11 @@ public class AvatarSpecificationSimulation { // Synchronous -> must find a corresponding synchronous one // Each time one is found, a new pending transaction is added, linked with the receiving action //TraceManager.addDev("Found a synchronous signal"); - for(AvatarSimulationPendingTransaction otherTransaction: pendingTransactions) { + for (AvatarSimulationPendingTransaction otherTransaction : pendingTransactions) { if (otherTransaction != _aspt) { if (otherTransaction.elementToExecute instanceof AvatarActionOnSignal) { //TraceManager.addDev("step 2"); - AvatarSignal sig = ((AvatarActionOnSignal)(otherTransaction.elementToExecute)).getSignal(); + AvatarSignal sig = ((AvatarActionOnSignal) (otherTransaction.elementToExecute)).getSignal(); AvatarRelation rel = avspec.getAvatarRelationWithSignal(sig); if (rel == ar) { int index1 = rel.getIndexOfSignal(sig); @@ -787,7 +786,7 @@ public class AvatarSpecificationSimulation { } public synchronized AvatarSimulationAsynchronousTransaction getAsynchronousMessage(AvatarRelation _ar, AvatarSignal _as) { - for(AvatarSimulationAsynchronousTransaction asat: asynchronousMessages) { + for (AvatarSimulationAsynchronousTransaction asat : asynchronousMessages) { if (asat.getRelation() == _ar) { if (_ar.getIndexOfSignal(_as) == asat.getIndex()) { return asat; @@ -799,9 +798,9 @@ public class AvatarSpecificationSimulation { public synchronized int getNbOfAsynchronousMessages(AvatarRelation _ar) { int cpt = 0; - for(AvatarSimulationAsynchronousTransaction asat: asynchronousMessages) { + for (AvatarSimulationAsynchronousTransaction asat : asynchronousMessages) { if (asat.getRelation() == _ar) { - cpt ++; + cpt++; } } return cpt; @@ -809,7 +808,7 @@ public class AvatarSpecificationSimulation { public AvatarSimulationPendingTransaction getSilentTransactionToExecute(Vector<AvatarSimulationPendingTransaction> _pendingTransactions) { //TraceManager.addDev("executeEmptyTransition=" + executeEmptyTransition + " executeStateEntering=" + executeStateEntering); - if(!executeEmptyTransition && !executeStateEntering) { + if (!executeEmptyTransition && !executeStateEntering) { return null; } @@ -818,12 +817,12 @@ public class AvatarSpecificationSimulation { return null; } - for(AvatarSimulationPendingTransaction tr: _pendingTransactions) { + for (AvatarSimulationPendingTransaction tr : _pendingTransactions) { // Empty transition? if ((tr.elementToExecute instanceof AvatarTransition) && (executeEmptyTransition)) { - AvatarTransition atr = (AvatarTransition)(tr.elementToExecute); - if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())){ + AvatarTransition atr = (AvatarTransition) (tr.elementToExecute); + if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())) { if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) { //TraceManager.addDev("Setting to silent: " + tr); tr.isSilent = true; @@ -834,7 +833,7 @@ public class AvatarSpecificationSimulation { return tr; } // State entering? - } else if (((tr.elementToExecute instanceof AvatarState) || (tr.elementToExecute instanceof AvatarStopState)) && (executeStateEntering)) { + } else if (((tr.elementToExecute instanceof AvatarState) || (tr.elementToExecute instanceof AvatarStopState)) && (executeStateEntering)) { if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) { //TraceManager.addDev("Setting to silent"); tr.isSilent = true; @@ -850,7 +849,7 @@ public class AvatarSpecificationSimulation { } public AvatarSimulationPendingTransaction getRandomSilentTransactionToExecute(Vector<AvatarSimulationPendingTransaction> _pendingTransactions) { - if(!executeEmptyTransition && !executeStateEntering) { + if (!executeEmptyTransition && !executeStateEntering) { return null; } @@ -858,15 +857,15 @@ public class AvatarSpecificationSimulation { return null; } - int index = (int)(Math.floor(Math.random()*_pendingTransactions.size())); + int index = (int) (Math.floor(Math.random() * _pendingTransactions.size())); AvatarSimulationPendingTransaction tr; - for(int i=0; i<_pendingTransactions.size(); i++) { - tr = _pendingTransactions.get((i+index)%pendingTransactions.size()); + for (int i = 0; i < _pendingTransactions.size(); i++) { + tr = _pendingTransactions.get((i + index) % pendingTransactions.size()); // Empty transition? if ((tr.elementToExecute instanceof AvatarTransition) && (executeEmptyTransition)) { - AvatarTransition atr = (AvatarTransition)(tr.elementToExecute); - if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())){ + AvatarTransition atr = (AvatarTransition) (tr.elementToExecute); + if (!(atr.hasDelay()) && !(atr.hasCompute()) && !(atr.hasActions())) { //TraceManager.addDev("Empty transition?"); if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) { tr.isSilent = true; @@ -875,7 +874,7 @@ public class AvatarSpecificationSimulation { } } // State entering? - } else if (((tr.elementToExecute instanceof AvatarState) || (tr.elementToExecute instanceof AvatarStopState)) && (executeStateEntering)) { + } else if (((tr.elementToExecute instanceof AvatarState) || (tr.elementToExecute instanceof AvatarStopState)) && (executeStateEntering)) { //TraceManager.addDev("Empty state enter?"); if (nbOfTransactions(tr.asb, _pendingTransactions) < 2) { tr.isSilent = true; @@ -891,10 +890,10 @@ public class AvatarSpecificationSimulation { public int nbOfTransactions(AvatarSimulationBlock _asb, Vector<AvatarSimulationPendingTransaction> _pendingTransactions) { int cpt = 0; //TraceManager.addDev("Nb of pending transactions:" + _pendingTransactions.size()); - for(AvatarSimulationPendingTransaction tr: _pendingTransactions) { + for (AvatarSimulationPendingTransaction tr : _pendingTransactions) { //TraceManager.addDev("tr=" + tr + " _asb=" + _asb + " tr.asb=" + tr.asb); if (tr.hasBlock(_asb)) { - cpt ++; + cpt++; //TraceManager.addDev("cpt++"); } } @@ -903,8 +902,6 @@ public class AvatarSpecificationSimulation { } - - public Vector<AvatarSimulationPendingTransaction> selectTransactions(Vector<AvatarSimulationPendingTransaction> _pendingTransactions) { Vector<AvatarSimulationPendingTransaction> ll = new Vector<AvatarSimulationPendingTransaction>(); @@ -921,7 +918,30 @@ public class AvatarSpecificationSimulation { // Random select the first index if none has been selected if (indexSelectedTransaction == -1) { //TraceManager.addDev("No transition selected"); - indexSelectedTransaction = (int)(Math.floor(Math.random()*_pendingTransactions.size())); + // Consider probabilities + double sumProb = 0.0; + int selectedIndex = -1; + for (AvatarSimulationPendingTransaction pt: _pendingTransactions) { + sumProb += pt.probability; + } + + double rand2 = Math.random() * sumProb; + //TraceManager.addDev("Nb of pending:" + ll.size() + " total prob=" + sumProb + " rand=" + rand2); + + + double prob = 0.0; + int index = 0; + for (AvatarSimulationPendingTransaction pt: _pendingTransactions) { + prob += pt.probability; + //TraceManager.addDev("rand=" + rand2 + " prob=" + prob + " pt.probability=" + pt.probability); + if (rand2 < prob) { + selectedIndex = index; + break; + } + index ++; + } + //indexSelectedTransaction = (int) (Math.floor(Math.random() * _pendingTransactions.size())); + indexSelectedTransaction = selectedIndex; } AvatarSimulationPendingTransaction currentTransaction = _pendingTransactions.get(indexSelectedTransaction); @@ -958,7 +978,7 @@ public class AvatarSpecificationSimulation { if (_pendingTransactions.get(0).linkedTransactions != null) { //TraceManager.addDev("BROADCAST"); tempo_clock_Value = clockValue; - for(AvatarSimulationPendingTransaction aspt: _pendingTransactions.get(0).linkedTransactions) { + for (AvatarSimulationPendingTransaction aspt : _pendingTransactions.get(0).linkedTransactions) { TraceManager.addDev("Executing broadcast transactions"); preExecutedTransaction(aspt); aspt.asb.runSoloPendingTransaction(aspt, allTransactions, tempo_clock_Value, MAX_TRANSACTION_IN_A_ROW, bunchid); @@ -982,7 +1002,7 @@ public class AvatarSpecificationSimulation { public void preExecutedTransaction(AvatarSimulationPendingTransaction _aspt) { if (_aspt.elementToExecute instanceof AvatarActionOnSignal) { - AvatarSignal sig = ((AvatarActionOnSignal)(_aspt.elementToExecute)).getSignal(); + AvatarSignal sig = ((AvatarActionOnSignal) (_aspt.elementToExecute)).getSignal(); AvatarRelation rel = avspec.getAvatarRelationWithSignal(sig); _aspt.isSending = sig.isOut(); if (rel.isAsynchronous()) { @@ -994,7 +1014,7 @@ public class AvatarSpecificationSimulation { _aspt.linkedAsynchronousMessage = asat; // Testing whether the message can be lost or not if (rel.isLossy()) { - int ra = ((int)(Math.random()*100))%2; + int ra = ((int) (Math.random() * 100)) % 2; if (ra == 0) { _aspt.isLost = true; } else { @@ -1047,7 +1067,7 @@ public class AvatarSpecificationSimulation { // Must select a value for the duration! if (_aspt.linkedTransaction != null) { if (_aspt.durationOnCurrent) { - _aspt.selectedDuration = _aspt.myMinDuration + (int)(Math.floor(Math.random()*(_aspt.maxDuration-_aspt.myMinDuration))); + _aspt.selectedDuration = _aspt.myMinDuration + (int) (Math.floor(Math.random() * (_aspt.maxDuration - _aspt.myMinDuration))); //TraceManager.addDev("Selected duration:" + _aspt.selectedDuration + " myMinDuration=" + _aspt.myMinDuration + " maxDuration=" + _aspt.maxDuration); if (_aspt.durationOnOther) { _aspt.linkedTransaction.durationSelected = true; @@ -1057,7 +1077,7 @@ public class AvatarSpecificationSimulation { } } } else { - _aspt.selectedDuration = _aspt.myMinDuration + (int)(Math.floor(Math.random()*(_aspt.maxDuration-_aspt.myMinDuration))); + _aspt.selectedDuration = _aspt.myMinDuration + (int) (Math.floor(Math.random() * (_aspt.maxDuration - _aspt.myMinDuration))); //TraceManager.addDev("Selected duration:" + _aspt.selectedDuration + " myMinDuration=" + _aspt.myMinDuration + " maxDuration=" + _aspt.maxDuration); } } @@ -1072,7 +1092,7 @@ public class AvatarSpecificationSimulation { } public synchronized void backOneTransactionBunch(boolean _rec) { - if ( (state != DONT_EXECUTE) && (state != TERMINATED)) { + if ((state != DONT_EXECUTE) && (state != TERMINATED)) { return; } @@ -1085,13 +1105,13 @@ public class AvatarSpecificationSimulation { // Remove one transaction // Getting last transaction - AvatarSimulationTransaction ast = allTransactions.get(allTransactions.size()-1); + AvatarSimulationTransaction ast = allTransactions.get(allTransactions.size() - 1); long bunchid_tmp = ast.bunchid; boolean isAllSilent = true; - while((ast != null) && (ast.bunchid == bunchid_tmp)) { - allTransactions.removeElementAt(allTransactions.size()-1); + while ((ast != null) && (ast.bunchid == bunchid_tmp)) { + allTransactions.removeElementAt(allTransactions.size() - 1); AvatarSimulationTransaction.removeExecutedElement(ast.executedElement); if (ast.asb != null) { ast.asb.removeLastTransaction(ast); @@ -1111,7 +1131,7 @@ public class AvatarSpecificationSimulation { } if (allTransactions.size() > 0) { - ast = allTransactions.get(allTransactions.size()-1); + ast = allTransactions.get(allTransactions.size() - 1); } else { ast = null; } @@ -1128,11 +1148,11 @@ public class AvatarSpecificationSimulation { //TraceManager.addDev("Backward size="+ allTransactions.size()); if (allTransactions.size() > 0) { - bunchid = (allTransactions.get(allTransactions.size()-1).bunchid) + 1; - clockValue = (allTransactions.get(allTransactions.size()-1)).clockValueWhenFinished; + bunchid = (allTransactions.get(allTransactions.size() - 1).bunchid) + 1; + clockValue = (allTransactions.get(allTransactions.size() - 1)).clockValueWhenFinished; } else { bunchid = 0; - clockValue = 0; + clockValue = 0; } AvatarSimulationTransaction.setID(allTransactions.size()); @@ -1145,14 +1165,14 @@ public class AvatarSpecificationSimulation { } public void printExecutedTransactions() { - for(AvatarSimulationTransaction ast: allTransactions) { + for (AvatarSimulationTransaction ast : allTransactions) { //TraceManager.addDev(ast.toString() + "\n"); } } public String getStringExecutedTransactions() { StringBuffer sb = new StringBuffer(""); - for(AvatarSimulationTransaction ast: allTransactions) { + for (AvatarSimulationTransaction ast : allTransactions) { sb.append(ast.toString() + "\n"); } return sb.toString(); @@ -1166,10 +1186,10 @@ public class AvatarSpecificationSimulation { AvatarSimulationPendingTransaction asptfound, newaspt; Point p; - while(true) { + while (true) { asptfound = null; p = null; - for(AvatarSimulationPendingTransaction aspt: _transactions) { + for (AvatarSimulationPendingTransaction aspt : _transactions) { if ((aspt.isBroadcast) && (aspt.linkedTransactions != null)) { if ((p = aspt.hasDuplicatedBlockTransaction()) != null) { TraceManager.addDev("FOUND DUPLICATED BLOCK"); @@ -1191,7 +1211,7 @@ public class AvatarSpecificationSimulation { private void workOnABroadcastTransaction(Vector<AvatarSimulationPendingTransaction> _oldTransactions, Vector<AvatarSimulationPendingTransaction> _newTransactions, AvatarSimulationPendingTransaction _aspt) { boolean isMet = false; // Other transactions? - for (AvatarSimulationPendingTransaction aspt: _oldTransactions) { + for (AvatarSimulationPendingTransaction aspt : _oldTransactions) { if ((aspt.elementToExecute == _aspt.elementToExecute) && (aspt != _aspt)) { isMet = true; break; @@ -1207,7 +1227,7 @@ public class AvatarSpecificationSimulation { // Searching for a timed broadcast transaction isMet = false; AvatarSimulationPendingTransaction untimedTransaction = null; - for (AvatarSimulationPendingTransaction aspt: _oldTransactions) { + for (AvatarSimulationPendingTransaction aspt : _oldTransactions) { if (aspt.elementToExecute == _aspt.elementToExecute) { if (aspt.hasConfiguredDurationMoreThan0()) { isMet = true; @@ -1221,7 +1241,7 @@ public class AvatarSpecificationSimulation { if (!isMet) { // At least one untimed transaction: We only aggregate all untimed transactions to untimedTransaction untimedTransaction.linkedTransactions = new Vector<AvatarSimulationPendingTransaction>(); - for (AvatarSimulationPendingTransaction aspt: _oldTransactions) { + for (AvatarSimulationPendingTransaction aspt : _oldTransactions) { if ((aspt != untimedTransaction) && (aspt.elementToExecute == untimedTransaction.elementToExecute)) { if (!(aspt.hasConfiguredDurationMoreThan0())) { untimedTransaction.linkedTransactions.add(aspt); @@ -1244,7 +1264,7 @@ public class AvatarSpecificationSimulation { // higher than this max are removed int max = Integer.MAX_VALUE; Vector<AvatarSimulationPendingTransaction> ll = new Vector<AvatarSimulationPendingTransaction>(); - for (AvatarSimulationPendingTransaction aspt: _oldTransactions) { + for (AvatarSimulationPendingTransaction aspt : _oldTransactions) { if (aspt.myMaxDuration < max) { max = aspt.myMaxDuration; } @@ -1254,7 +1274,7 @@ public class AvatarSpecificationSimulation { return; } - for (AvatarSimulationPendingTransaction aspt: _oldTransactions) { + for (AvatarSimulationPendingTransaction aspt : _oldTransactions) { if (aspt.myMinDuration <= max) { ll.add(aspt); } @@ -1277,7 +1297,7 @@ public class AvatarSpecificationSimulation { AvatarSimulationPendingTransaction a0; AvatarSimulationPendingTransaction tmp; - for(int i=0; i<ll.size(); i++) { + for (int i = 0; i < ll.size(); i++) { a0 = ll.get(i); // We compute all possible sets of transactions that are before a0 // a0 is then cloned with all possibilities @@ -1296,7 +1316,7 @@ public class AvatarSpecificationSimulation { } // Dont add the current one to the list - makeRandom(mainTransaction, index+1, indexMax, _transactions, _newTransactions); + makeRandom(mainTransaction, index + 1, indexMax, _transactions, _newTransactions); // Add the current one to the list AvatarSimulationPendingTransaction aspt = _transactions.get(index); @@ -1308,7 +1328,7 @@ public class AvatarSpecificationSimulation { asptnew.linkedTransactions.add(aspt); _newTransactions.add(asptnew); - makeRandom(asptnew, index+1, indexMax, _transactions, _newTransactions); + makeRandom(asptnew, index + 1, indexMax, _transactions, _newTransactions); } @@ -1327,16 +1347,16 @@ public class AvatarSpecificationSimulation { int cpt = 0; - while(_vector.size() >0) { + while (_vector.size() > 0) { min = Integer.MAX_VALUE; index = 0; cpt = 0; - for(AvatarSimulationPendingTransaction aspt: _vector) { - if(aspt.myMinDuration < min) { + for (AvatarSimulationPendingTransaction aspt : _vector) { + if (aspt.myMinDuration < min) { index = cpt; min = aspt.myMinDuration; } - cpt ++; + cpt++; } ll.add(_vector.get(index)); @@ -1440,7 +1460,7 @@ public class AvatarSpecificationSimulation { // value: -1 -> not forcing // other value: random is forced to that value public void forceRandom(int value) { - for(AvatarSimulationBlock block: blocks) { + for (AvatarSimulationBlock block : blocks) { block.forceRandom(value); } } @@ -1459,21 +1479,21 @@ public class AvatarSpecificationSimulation { // Asynchronous messages manipulation public synchronized boolean removeAsyncMessage(AvatarRelation ar, int index) { - if ((ar != null) && (index >-1)) { + if ((ar != null) && (index > -1)) { int realIndex = 0; boolean found = false; AvatarSimulationAsynchronousTransaction mesg = null; - for(AvatarSimulationAsynchronousTransaction msg: asynchronousMessages) { + for (AvatarSimulationAsynchronousTransaction msg : asynchronousMessages) { if (msg.getRelation() == ar) { if (index == 0) { found = true; mesg = msg; break; } else { - index --; + index--; } } - realIndex ++; + realIndex++; } if (found) { //TraceManager.addDev("Removing at index: " + realIndex); @@ -1489,27 +1509,27 @@ public class AvatarSpecificationSimulation { //TraceManager.addDev("Moving from index: " + oldIndex + " to: " + newIndex); /*int back1 = oldIndex; int back2 = newIndex;*/ - if ((ar != null) && (oldIndex >-1) && (newIndex >-1) && (oldIndex != newIndex)) { + if ((ar != null) && (oldIndex > -1) && (newIndex > -1) && (oldIndex != newIndex)) { int oldRealIndex = -1; int newRealIndex = -1; int realIndex = 0; boolean found = false; AvatarSimulationAsynchronousTransaction mesg = null; - for(AvatarSimulationAsynchronousTransaction msg: asynchronousMessages) { + for (AvatarSimulationAsynchronousTransaction msg : asynchronousMessages) { if (msg.getRelation() == ar) { - if ((oldIndex == 0) && (oldRealIndex == -1)){ + if ((oldIndex == 0) && (oldRealIndex == -1)) { oldRealIndex = realIndex; mesg = msg; } else { - oldIndex --; + oldIndex--; } if ((newIndex == 0) && (newRealIndex == -1)) { newRealIndex = realIndex; } else { - newIndex --; + newIndex--; } } - realIndex ++; + realIndex++; } if ((newRealIndex != -1) && (mesg != null)) { //TraceManager.addDev("Moving from: " + oldRealIndex + " to: "+ newRealIndex); @@ -1531,8 +1551,7 @@ public class AvatarSpecificationSimulation { } - - public synchronized boolean removeAsyncMsgFromPendingTransactions(AvatarSimulationAsynchronousTransaction msg) { + public synchronized boolean removeAsyncMsgFromPendingTransactions(AvatarSimulationAsynchronousTransaction msg) { if (msg == null) { return false; } @@ -1540,7 +1559,7 @@ public class AvatarSpecificationSimulation { boolean found = false; Vector<AvatarSimulationPendingTransaction> vect = new Vector<AvatarSimulationPendingTransaction>(); if ((pendingTransactions != null) && (pendingTransactions.size() > 0)) { - for(AvatarSimulationPendingTransaction tr: pendingTransactions) { + for (AvatarSimulationPendingTransaction tr : pendingTransactions) { if (tr.linkedAsynchronousMessage == msg) { //TraceManager.addDev("Msg to remove from pending transaction"); vect.add(tr); @@ -1549,8 +1568,8 @@ public class AvatarSpecificationSimulation { } } - if (vect.size()>0) { - for(AvatarSimulationPendingTransaction toRem: vect) { + if (vect.size() > 0) { + for (AvatarSimulationPendingTransaction toRem : vect) { //TraceManager.addDev("Removing pending transaction"); pendingTransactions.remove(toRem); } diff --git a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java index db6eebf1584702e66b0abb9fd68fdfacfd39c956..45765f96438e21dc9b033676aad3018685a27d49 100755 --- a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java +++ b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java @@ -37,8 +37,6 @@ */ - - package avatartranslator.toexecutable; import avatartranslator.*; @@ -52,8 +50,9 @@ import java.util.Vector; /** * Class AVATAR2CPOSIX * Creation: 29/03/2011 - * @version 1.2 24/03/2016 + * * @author Ludovic APVRILLE + * @version 1.2 24/03/2016 */ public class AVATAR2CPOSIX { @@ -104,24 +103,32 @@ public class AVATAR2CPOSIX { public void saveInFiles(String path) throws FileException { - TraceManager.addDev("Generating files"); - if (!SpecConfigTTool.checkAndCreateAVATARCodeDir(path)) - throw new FileException("ERROR: Executable code directory cannot be created."); + //TraceManager.addDev("save In Files AVATAR2CPOSIX"); + if (!SpecConfigTTool.checkAndCreateAVATARCodeDir(path)) { + TraceManager.addDev("Directory cannot be created: " + path); + throw new FileException("ERROR: Executable code directory cannot be created."); + } + //TraceManager.addDev("Creating dir for saving generated code"); File src_dir = new File(path + GENERATED_PATH); if (!src_dir.exists()) { - src_dir.mkdir(); + TraceManager.addDev("Creating: " + src_dir.getAbsolutePath()); + src_dir.mkdir(); } + + //TraceManager.addDev("Generating main file"); if (mainFile != null) { TraceManager.addDev("Generating main files in " + path + mainFile.getName() + ".h"); FileUtils.saveFile(path + GENERATED_PATH + mainFile.getName() + ".h", Conversion.indentString(mainFile.getHeaderCode(), 2)); FileUtils.saveFile(path + GENERATED_PATH + mainFile.getName() + ".c", Conversion.indentString(mainFile.getMainCode(), 2)); } - for(TaskFile taskFile: taskFiles) { + //TraceManager.addDev("Generating task files"); + for (TaskFile taskFile : taskFiles) { FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode(), 2)); FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2)); } + //TraceManager.addDev("Making Makefiles"); // Standard Makefile makeMakefileSrc(GENERATED_PATH); FileUtils.saveFile(path + "Makefile.src", makefile_src); @@ -137,16 +144,15 @@ public class AVATAR2CPOSIX { } - public void generateCPOSIX(boolean _debug, boolean _tracing) { debug = _debug; tracing = _tracing; - + mainFile = new MainFile("main", plugin); taskFiles = new Vector<TaskFile>(); avspec.removeCompositeStates(); - avspec.removeLibraryFunctionCalls (); + avspec.removeLibraryFunctionCalls(); avspec.removeTimers(); @@ -185,10 +191,10 @@ public class AVATAR2CPOSIX { mainFile.appendToHCode("/* Synchronous channels */" + CR); mainFile.appendToBeforeMainCode("/* Synchronous channels */" + CR); mainFile.appendToMainCode("/* Synchronous channels */" + CR); - for(AvatarRelation ar: avspec.getRelations()) { + for (AvatarRelation ar : avspec.getRelations()) { if (!ar.isAsynchronous()) { - for(int i=0; i<ar.nbOfSignals(); i++) { - mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); + for (int i = 0; i < ar.nbOfSignals(); i++) { + mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR); mainFile.appendToBeforeMainCode("syncchannel __" + getChannelName(ar, i) + ";" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); @@ -209,10 +215,10 @@ public class AVATAR2CPOSIX { mainFile.appendToHCode("/* Asynchronous channels */" + CR); mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR); mainFile.appendToMainCode("/* Asynchronous channels */" + CR); - for(AvatarRelation ar: avspec.getRelations()) { + for (AvatarRelation ar : avspec.getRelations()) { if (ar.isAsynchronous()) { - for(int i=0; i<ar.nbOfSignals(); i++) { - mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR); + for (int i = 0; i < ar.nbOfSignals(); i++) { + mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR); mainFile.appendToBeforeMainCode("asyncchannel __" + getChannelName(ar, i) + ";" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR); mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR); @@ -231,7 +237,7 @@ public class AVATAR2CPOSIX { } public void makeTasks() { - for(AvatarBlock block: avspec.getListOfBlocks()) { + for (AvatarBlock block : avspec.getListOfBlocks()) { makeTask(block); } } @@ -264,10 +270,10 @@ public class AVATAR2CPOSIX { _taskFile.addToMainCode("#define STATE__START__STATE 0" + CR); - for (AvatarStateMachineElement asme: _block.getStateMachine().getListOfElements()) { + for (AvatarStateMachineElement asme : _block.getStateMachine().getListOfElements()) { if (asme instanceof AvatarState) { _taskFile.addToMainCode("#define STATE__" + asme.getName() + " " + id + CR); - id ++; + id++; } } _taskFile.addToMainCode("#define STATE__STOP__STATE " + id + CR); @@ -276,7 +282,7 @@ public class AVATAR2CPOSIX { public void defineAllMethods(AvatarBlock _block, TaskFile _taskFile) { Vector<String> allNames = new Vector<String>(); - for (AvatarMethod am: _block.getMethods()) { + for (AvatarMethod am : _block.getMethods()) { makeMethod(_block, am, allNames, _taskFile); } @@ -289,7 +295,7 @@ public class AVATAR2CPOSIX { return; } - for (AvatarMethod am: _currentBlock.getFather().getMethods()) { + for (AvatarMethod am : _currentBlock.getFather().getMethods()) { makeMethod(_originBlock, am, _allNames, _taskFile); } @@ -302,9 +308,9 @@ public class AVATAR2CPOSIX { LinkedList<AvatarAttribute> list; LinkedList<AvatarAttribute> listA; - String nameMethod = _block.getName() + "__" +_am.getName(); + String nameMethod = _block.getName() + "__" + _am.getName(); - for(String s: _allNames) { + for (String s : _allNames) { if (s.compareTo(nameMethod) == 0) { return; } @@ -320,12 +326,12 @@ public class AVATAR2CPOSIX { ret += " " + nameMethod + "("; list = _am.getListOfAttributes(); int cpt = 0; - for(AvatarAttribute aa: list) { + for (AvatarAttribute aa : list) { if (cpt != 0) { ret += ", "; } ret += getCTypeOf(aa) + " " + aa.getName(); - cpt ++; + cpt++; } ret += ") {" + CR; @@ -336,18 +342,18 @@ public class AVATAR2CPOSIX { if (list.size() > 0) { ret += "char my__attr[CHAR_ALLOC_SIZE];" + CR; ret += "sprintf(my__attr, \""; - for(AvatarAttribute aa: list) { + for (AvatarAttribute aa : list) { if (cpt != 0) { tr += ","; ret += ","; } tr += aa.getName(); ret += "%d"; - cpt ++; + cpt++; } ret += "\"," + tr + ");" + CR; ret += traceFunctionCall(_block.getName(), _am.getName(), "my__attr"); - } else { + } else { ret += traceFunctionCall(_block.getName(), _am.getName(), null); } } @@ -357,7 +363,7 @@ public class AVATAR2CPOSIX { list = _am.getListOfAttributes(); cpt = 0; - for(AvatarAttribute aa: list) { + for (AvatarAttribute aa : list) { ret += "debugInt(\"Attribute " + aa.getName() + " = \"," + aa.getName() + ");" + CR; } } @@ -371,19 +377,19 @@ public class AVATAR2CPOSIX { if (_am.isImplementationProvided()) { ret += "return __userImplemented__" + nameMethod + "("; cpt = 0; - for(AvatarAttribute aaa: listA) { + for (AvatarAttribute aaa : listA) { if (cpt != 0) { ret += ", "; } ret += aaa.getName(); - cpt ++; + cpt++; } - ret+= ");" + CR; + ret += ");" + CR; //TraceManager.addDev("Adding a call to the method"); } else { - if (listA.size() >0) { + if (listA.size() > 0) { ret += "return " + listA.get(0).getName() + ";" + CR; } else { ret += "return 0;" + CR; @@ -393,14 +399,14 @@ public class AVATAR2CPOSIX { if (_am.isImplementationProvided()) { ret += "__userImplemented__" + nameMethod + "("; cpt = 0; - for(AvatarAttribute aaa: listA) { + for (AvatarAttribute aaa : listA) { if (cpt != 0) { ret += ", "; } ret += aaa.getName(); - cpt ++; + cpt++; } - ret+= ");" + CR; + ret += ");" + CR; } } @@ -411,7 +417,7 @@ public class AVATAR2CPOSIX { public void makeMainHeader() { mainFile.appendToBeforeMainCode(CR); - for(TaskFile taskFile: taskFiles) { + for (TaskFile taskFile : taskFiles) { mainFile.appendToBeforeMainCode("#include \"" + taskFile.getName() + ".h\"" + CR); } mainFile.appendToBeforeMainCode(CR); @@ -423,37 +429,37 @@ public class AVATAR2CPOSIX { String s = "void *mainFunc__" + _block.getName() + "(void *arg)"; String sh = "extern " + s + ";" + CR; - s+= "{" + CR; + s += "{" + CR; s += makeAttributesDeclaration(_block, _taskFile); - s+= CR + "int __currentState = STATE__START__STATE;" + CR; + s += CR + "int __currentState = STATE__START__STATE;" + CR; int nbOfMaxParams = _block.getMaxNbOfParams(); //s+= "request *__req;" + CR; - for(i=0; i<_block.getMaxNbOfMultipleBranches(); i++) { - s+= UNUSED_ATTR + " request __req" + i + ";" + CR; - s+= UNUSED_ATTR + "int *__params" + i + "[" + nbOfMaxParams + "];" + CR; + for (i = 0; i < _block.getMaxNbOfMultipleBranches(); i++) { + s += UNUSED_ATTR + " request __req" + i + ";" + CR; + s += UNUSED_ATTR + "int *__params" + i + "[" + nbOfMaxParams + "];" + CR; } - s+= UNUSED_ATTR + "setOfRequests __list;" + CR; + s += UNUSED_ATTR + "setOfRequests __list;" + CR; - s+= UNUSED_ATTR + "pthread_cond_t __myCond;" + CR; - s+= UNUSED_ATTR + "request *__returnRequest;" + CR; + s += UNUSED_ATTR + "pthread_cond_t __myCond;" + CR; + s += UNUSED_ATTR + "request *__returnRequest;" + CR; - s+= CR + "char * __myname = (char *)arg;" + CR; + s += CR + "char * __myname = (char *)arg;" + CR; /*if (tracing) { s+= CR + "char __value[CHAR_ALLOC_SIZE];" + CR; }*/ - s+= CR + "pthread_cond_init(&__myCond, NULL);" + CR; + s += CR + "pthread_cond_init(&__myCond, NULL);" + CR; - s+= CR + "fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);" + CR; + s += CR + "fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);" + CR; - s+= "//printf(\"my name = %s\\n\", __myname);" + CR; + s += "//printf(\"my name = %s\\n\", __myname);" + CR; - s+= CR + "/* Main loop on states */" + CR; - s+= "while(__currentState != STATE__STOP__STATE) {" + CR; + s += CR + "/* Main loop on states */" + CR; + s += "while(__currentState != STATE__STOP__STATE) {" + CR; s += "switch(__currentState) {" + CR; @@ -466,13 +472,13 @@ public class AVATAR2CPOSIX { String tmp; // Making other states - for(AvatarStateMachineElement asme: asm.getListOfElements()) { + for (AvatarStateMachineElement asme : asm.getListOfElements()) { if (asme instanceof AvatarState) { s += "case STATE__" + asme.getName() + ": " + CR; s += traceStateEntering("__myname", asme.getName()); if (includeUserCode) { - tmp = ((AvatarState)asme).getEntryCode(); + tmp = ((AvatarState) asme).getEntryCode(); if (tmp != null) { if (tmp.trim().length() > 0) { s += "/* Entry code */\n" + tmp + "\n/* End of entry code */\n\n"; @@ -489,8 +495,8 @@ public class AVATAR2CPOSIX { s += "}" + CR; - s+= "//printf(\"Exiting = %s\\n\", __myname);" + CR; - s+= "return NULL;" + CR; + s += "//printf(\"Exiting = %s\\n\", __myname);" + CR; + s += "return NULL;" + CR; s += "}" + CR; _taskFile.addToMainCode(s + CR); _taskFile.addToHeaderCode(sh + CR); @@ -512,10 +518,10 @@ public class AVATAR2CPOSIX { } if (_asme instanceof AvatarTransition) { - AvatarTransition at = (AvatarTransition)_asme; + AvatarTransition at = (AvatarTransition) _asme; if (at.isGuarded()) { - String g = modifyGuard(at.getGuard().toString ()); + String g = modifyGuard(at.getGuard().toString()); ret += "if (!" + g + ") {" + CR; if (debug) { @@ -527,7 +533,7 @@ public class AVATAR2CPOSIX { } if (at.hasDelay()) { - ret+= "waitFor(" + reworkDelay(at.getMinDelay()) + ", " + reworkDelay(at.getMaxDelay()) + ");" + CR; + ret += "waitFor(" + reworkDelay(at.getMinDelay()) + ", " + reworkDelay(at.getMaxDelay()) + ");" + CR; } String act; @@ -566,9 +572,9 @@ public class AVATAR2CPOSIX { // 1) Only immediatly executable transitions - for(i=0; i<_asme.nbOfNexts(); i++) { + for (i = 0; i < _asme.nbOfNexts(); i++) { if (_asme.getNext(i) instanceof AvatarTransition) { - AvatarTransition at = (AvatarTransition)(_asme.getNext(i)); + AvatarTransition at = (AvatarTransition) (_asme.getNext(i)); if (at.hasActions()) { ret += makeImmediateAction(at, i); @@ -592,15 +598,15 @@ public class AVATAR2CPOSIX { ret += "}" + CR; ret += "__returnRequest = executeListOfRequests(&__list);" + CR; - ret += "clearListOfRequests(&__list);" + CR ; + ret += "clearListOfRequests(&__list);" + CR; ret += traceRequest(); // Resulting requests - for(i=0; i<_asme.nbOfNexts(); i++) { + for (i = 0; i < _asme.nbOfNexts(); i++) { if (i != 0) { ret += "else "; } - AvatarTransition at = (AvatarTransition)(_asme.getNext(i)); + AvatarTransition at = (AvatarTransition) (_asme.getNext(i)); if (at.hasActions()) { ret += " if (__returnRequest == &__req" + i + ") {" + CR; ret += makeActionsOfTransaction(_block, at); @@ -614,7 +620,7 @@ public class AVATAR2CPOSIX { }*/ ret += makeBehaviourFromElement(_block, at.getNext(0), false) + CR + "}"; - } else { + } else { if (at.getNext(0) instanceof AvatarActionOnSignal) { ret += " if (__returnRequest == &__req" + i + ") {" + CR + makeBehaviourFromElement(_block, at.getNext(0).getNext(0), false) + CR + "}"; } else { @@ -634,13 +640,13 @@ public class AVATAR2CPOSIX { } if (_asme instanceof AvatarRandom) { - AvatarRandom ar = (AvatarRandom)_asme; + AvatarRandom ar = (AvatarRandom) _asme; ret += ar.getVariable() + " = computeRandom(" + ar.getMinValue() + ", " + ar.getMaxValue() + ");" + CR; return ret + makeBehaviourFromElement(_block, _asme.getNext(0), false); } if (_asme instanceof AvatarActionOnSignal) { - AvatarActionOnSignal aaos = (AvatarActionOnSignal)_asme; + AvatarActionOnSignal aaos = (AvatarActionOnSignal) _asme; ret += makeSignalAction(aaos, 0, false, "", ""); AvatarSignal as = aaos.getSignal(); AvatarRelation ar = avspec.getAvatarRelationWithSignal(as); @@ -660,10 +666,10 @@ public class AVATAR2CPOSIX { return ""; } - aaos = (AvatarActionOnSignal)(_at.getNext(0)); + aaos = (AvatarActionOnSignal) (_at.getNext(0)); if (_at.isGuarded()) { - String g = modifyGuard(_at.getGuard().toString ()); + String g = modifyGuard(_at.getGuard().toString()); ret += "if (" + g + ") {" + CR; } @@ -701,26 +707,26 @@ public class AVATAR2CPOSIX { // Sending if (_aaos.isSending()) { // Putting params - for(i=0; i<_aaos.getNbOfValues() ;i++) { - ret += "__params" + _index + "[" + i + "] = &" + _aaos.getValue(i) + ";" + CR; + for (i = 0; i < _aaos.getNbOfValues(); i++) { + ret += "__params" + _index + "[" + i + "] = &" + _aaos.getValue(i) + ";" + CR; } if (ar.isAsynchronous()) { ret += "makeNewRequest(&__req" + _index + ", " + _aaos.getID() + ", SEND_ASYNC_REQUEST, " + delay + ", " + _aaos.getNbOfValues() + ", __params" + _index + ");" + CR; ret += "__req" + _index + ".asyncChannel = &__" + getChannelName(ar, as) + ";" + CR; } else { if (ar.isBroadcast()) { - ret += "makeNewRequest(&__req" + _index + ", " + _aaos.getID()+ ", SEND_BROADCAST_REQUEST, " + delay + ", " + _aaos.getNbOfValues() + ", __params" + _index + ");" + CR; + ret += "makeNewRequest(&__req" + _index + ", " + _aaos.getID() + ", SEND_BROADCAST_REQUEST, " + delay + ", " + _aaos.getNbOfValues() + ", __params" + _index + ");" + CR; ret += "__req" + _index + ".syncChannel = &__" + getChannelName(ar, as) + ";" + CR; } else { - ret += "makeNewRequest(&__req" + _index + ", " + _aaos.getID()+ ", SEND_SYNC_REQUEST, " + delay + ", " + _aaos.getNbOfValues() + ", __params" + _index + ");" + CR; + ret += "makeNewRequest(&__req" + _index + ", " + _aaos.getID() + ", SEND_SYNC_REQUEST, " + delay + ", " + _aaos.getNbOfValues() + ", __params" + _index + ");" + CR; ret += "__req" + _index + ".syncChannel = &__" + getChannelName(ar, as) + ";" + CR; } } // Receiving } else { - for(i=0; i<_aaos.getNbOfValues() ;i++) { - ret += "__params" + _index + "[" + i + "] = &" + _aaos.getValue(i) + ";" + CR; + for (i = 0; i < _aaos.getNbOfValues(); i++) { + ret += "__params" + _index + "[" + i + "] = &" + _aaos.getValue(i) + ";" + CR; } if (ar.isAsynchronous()) { ret += "makeNewRequest(&__req" + _index + ", " + _aaos.getID() + ", RECEIVE_ASYNC_REQUEST, " + delay + ", " + _aaos.getNbOfValues() + ", __params" + _index + ");" + CR; @@ -743,7 +749,7 @@ public class AVATAR2CPOSIX { private String makeImmediateAction(AvatarTransition _at, int _index) { String ret = ""; if (_at.isGuarded()) { - String g = modifyGuard(_at.getGuard().toString ()); + String g = modifyGuard(_at.getGuard().toString()); ret += "if (" + g + ") {" + CR; } @@ -770,7 +776,7 @@ public class AVATAR2CPOSIX { public String makeAttributesDeclaration(AvatarBlock _block, TaskFile _taskFile) { String ret = ""; - for(AvatarAttribute aa: _block.getAttributes()) { + for (AvatarAttribute aa : _block.getAttributes()) { ret += getCTypeOf(aa) + " " + aa.getName() + " = " + aa.getInitialValue() + ";" + CR; } return ret; @@ -778,7 +784,7 @@ public class AVATAR2CPOSIX { public void makeThreadsInMain(boolean _debug) { mainFile.appendToMainCode(CR + "/* Threads of tasks */" + CR); - for(TaskFile taskFile: taskFiles) { + for (TaskFile taskFile : taskFiles) { mainFile.appendToMainCode("pthread_t thread__" + taskFile.getName() + ";" + CR); } @@ -790,7 +796,6 @@ public class AVATAR2CPOSIX { } - mainFile.appendToMainCode("/* Activating randomness */" + CR); mainFile.appendToMainCode("initRandom();" + CR); @@ -801,19 +806,19 @@ public class AVATAR2CPOSIX { mainFile.appendToMainCode("initMessages();" + CR); - if (avspec.hasApplicationCode()&& includeUserCode) { + if (avspec.hasApplicationCode() && includeUserCode) { mainFile.appendToMainCode("/* User initialization */" + CR); mainFile.appendToMainCode("__user_init();" + CR); } mainFile.appendToMainCode(CR + CR + mainDebugMsg("Starting tasks")); - for(TaskFile taskFile: taskFiles) { + for (TaskFile taskFile : taskFiles) { mainFile.appendToMainCode("pthread_create(&thread__" + taskFile.getName() + ", NULL, mainFunc__" + taskFile.getName() + ", (void *)\"" + taskFile.getName() + "\");" + CR); } mainFile.appendToMainCode(CR + CR + mainDebugMsg("Joining tasks")); - for(TaskFile taskFile: taskFiles) { + for (TaskFile taskFile : taskFiles) { mainFile.appendToMainCode("pthread_join(thread__" + taskFile.getName() + ", NULL);" + CR); } @@ -834,7 +839,7 @@ public class AVATAR2CPOSIX { public void makeMakefileSrc(String _path) { makefile_src = "SRCS = "; makefile_src += _path + "main.c "; - for(TaskFile taskFile: taskFiles) { + for (TaskFile taskFile : taskFiles) { makefile_src += _path + taskFile.getName() + ".c "; } @@ -843,7 +848,7 @@ public class AVATAR2CPOSIX { public void makeMakefileSocLib() { makefile_SocLib = "objs = "; makefile_SocLib += "main.o "; - for(TaskFile taskFile: taskFiles) { + for (TaskFile taskFile : taskFiles) { makefile_SocLib += taskFile.getName() + ".o "; } @@ -879,13 +884,13 @@ public class AVATAR2CPOSIX { public String reworkDelay(String _delay) { - switch(timeUnit) { - case USEC: - return _delay; - case MSEC: - return "(" + _delay + ")*1000"; - case SEC: - return "(" + _delay + ")*1000000"; + switch (timeUnit) { + case USEC: + return _delay; + case MSEC: + return "(" + _delay + ")*1000"; + case SEC: + return "(" + _delay + ")*1000000"; } return _delay; @@ -893,33 +898,33 @@ public class AVATAR2CPOSIX { private String modifyMethodName(AvatarBlock _ab, AvatarTerm term) { if (term instanceof AvatarAttribute) - return term.getName (); + return term.getName(); if (term instanceof AvatarConstant) - return term.getName (); + return term.getName(); if (term instanceof AvatarTermRaw) - return term.getName (); + return term.getName(); if (term instanceof AvatarArithmeticOp) { AvatarArithmeticOp aop = (AvatarArithmeticOp) term; - return this.modifyMethodName (_ab, aop.getTerm1 ()) - + aop.getOperator () - + this.modifyMethodName (_ab, aop.getTerm2 ()); + return this.modifyMethodName(_ab, aop.getTerm1()) + + aop.getOperator() + + this.modifyMethodName(_ab, aop.getTerm2()); } if (term instanceof AvatarTuple) { boolean first = true; String res = "("; - for (AvatarTerm tterm: ((AvatarTuple) term).getComponents ()) { + for (AvatarTerm tterm : ((AvatarTuple) term).getComponents()) { if (first) first = false; else res += ", "; - res += this.modifyMethodName (_ab, tterm); + res += this.modifyMethodName(_ab, tterm); } return res + ")"; } if (term instanceof AvatarTermFunction) - return _ab.getName () + "__" + ((AvatarTermFunction) term).getMethod ().getName () - + this.modifyMethodName (_ab, ((AvatarTermFunction) term).getArgs ()); + return _ab.getName() + "__" + ((AvatarTermFunction) term).getMethod().getName() + + this.modifyMethodName(_ab, ((AvatarTermFunction) term).getArgs()); return ""; } @@ -974,20 +979,20 @@ public class AVATAR2CPOSIX { public String makeActionsOfTransaction(AvatarBlock _block, AvatarTransition _at) { String ret = ""; String type; - for(int i=0; i<_at.getNbOfAction(); i++) { + for (int i = 0; i < _at.getNbOfAction(); i++) { // Must know whether this is an action or a method call AvatarAction act = _at.getAction(i); TraceManager.addDev("Action=" + act); if (act.isAMethodCall()) { TraceManager.addDev("Method call"); - String actModified = modifyMethodName (_block, (AvatarTermFunction) act); - ret += actModified + ";" + CR; + String actModified = modifyMethodName(_block, (AvatarTermFunction) act); + ret += actModified + ";" + CR; } else { TraceManager.addDev("Else"); - String actModified = modifyMethodName (_block, ((AvatarActionAssignment) act).getLeftHand ()) - + " = " + modifyMethodName (_block, ((AvatarActionAssignment) act).getRightHand ()); - AvatarLeftHand leftHand = ((AvatarActionAssignment) act).getLeftHand (); + String actModified = modifyMethodName(_block, ((AvatarActionAssignment) act).getLeftHand()) + + " = " + modifyMethodName(_block, ((AvatarActionAssignment) act).getRightHand()); + AvatarLeftHand leftHand = ((AvatarActionAssignment) act).getLeftHand(); ret += actModified + ";" + CR; if (leftHand instanceof AvatarAttribute) { if (((AvatarAttribute) leftHand).isInt()) { @@ -995,7 +1000,7 @@ public class AVATAR2CPOSIX { } else { type = "1"; } - ret += traceVariableModification(_block.getName(), leftHand.getName (), type); + ret += traceVariableModification(_block.getName(), leftHand.getName(), type); } } diff --git a/src/main/java/common/SpecConfigTTool.java b/src/main/java/common/SpecConfigTTool.java index e46d7b61b07b6f6be715964119b2e1ae47e87442..1058a63c7178dba9b9440214ffed1b73bef22b85 100644 --- a/src/main/java/common/SpecConfigTTool.java +++ b/src/main/java/common/SpecConfigTTool.java @@ -61,6 +61,10 @@ import java.io.IOException; * @version 1.0 */ public class SpecConfigTTool { + + public static String DEFAULT_CONFIG = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n\n<PROJECTCONFIGURATION>\n<LastVCD data=\"\"/>\n<LastOpenDiagram tab=\"0\" panel=\"0\"/>\n</PROJECTCONFIGURATION>\n"; + + public static String SystemCCodeDirectory = ""; public static String SystemCCodeCompileCommand = ""; public static String SystemCCodeExecuteCommand = ""; @@ -168,12 +172,12 @@ public class SpecConfigTTool { VCDPath = dir.getAbsolutePath() + ProjectVCDDirectory; NCDirectory = dir.getAbsolutePath() + ProjectNCDirectory; - TraceManager.addDev("Before replace SystemCCodeCompileCommand:" + SystemCCodeCompileCommand + " with " + ConfigurationTTool.SystemCCodeDirectory + - " to " + SystemCCodeDirectory); + //TraceManager.addDev("Before replace SystemCCodeCompileCommand:" + SystemCCodeCompileCommand + " with " + ConfigurationTTool.SystemCCodeDirectory + + // " to " + SystemCCodeDirectory); SystemCCodeCompileCommand = ConfigurationTTool.SystemCCodeCompileCommand.replace( ConfigurationTTool.SystemCCodeDirectory, SystemCCodeDirectory); - TraceManager.addDev("After replace SystemCCodeCompileCommand:" + SystemCCodeCompileCommand); + //TraceManager.addDev("After replace SystemCCodeCompileCommand:" + SystemCCodeCompileCommand); SystemCCodeExecuteCommand = ConfigurationTTool.SystemCCodeExecuteCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SystemCCodeDirectory); SystemCCodeInteractiveExecuteCommand = ConfigurationTTool.SystemCCodeInteractiveExecuteCommand.replace(ConfigurationTTool.SystemCCodeDirectory, SystemCCodeDirectory); @@ -207,7 +211,15 @@ public class SpecConfigTTool { TGraph.mkdir(); } - File test = new File("./"); + File projectConfig = new File(dir + File.separator + "project_config.xml"); + try { + FileUtils.saveFile(projectConfig, DEFAULT_CONFIG); + return projectConfig; + } catch (Exception e) { + System.err.println(e.getMessage()); + } + + /*File test = new File("./"); File base; if (test.getAbsolutePath().contains("TTool/bin/")) base = new File("../ttool/project_config.xml"); @@ -218,19 +230,19 @@ public class SpecConfigTTool { return new File(dir + File.separator + "project_config.xml"); } catch (IOException e) { System.err.println(e.getMessage()); - } + }*/ return null; } public static void loadConfigFile(File f) throws MalformedConfigurationException { if (!FileUtils.checkFileForOpen(f)) { - throw new MalformedConfigurationException("Filepb"); + throw new MalformedConfigurationException("Filepb 1"); } String data = FileUtils.loadFileData(f); if (data == null) { - throw new MalformedConfigurationException("Filepb"); + throw new MalformedConfigurationException("Filepb 2"); } loadConfigurationFromXML(data); @@ -286,13 +298,13 @@ public class SpecConfigTTool { boolean write = false; if (!FileUtils.checkFileForOpen(f)) { - throw new MalformedConfigurationException("Filepb"); + throw new MalformedConfigurationException("Filepb 3"); } String data = FileUtils.loadFileData(f); if (data == null) { - throw new MalformedConfigurationException("Filepb"); + throw new MalformedConfigurationException("Filepb 4"); } index0 = data.indexOf("LastVCD"); @@ -405,11 +417,15 @@ public class SpecConfigTTool { * @author Fabien Tessier */ public static boolean checkAndCreateAVATARCodeDir(String s) throws FileException { + //TraceManager.addDev("Trying to create the dir:" + s); File f = new File(s); try { - if (!f.exists()) - if (!f.mkdir()) + if (!f.exists()) { + //TraceManager.addDev("Does not exist"); + if (!f.mkdir()) { return false; + } + } if (!s.equals(ConfigurationTTool.AVATARExecutableCodeDirectory)) { File make = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "Makefile"); File defs = new File(ConfigurationTTool.AVATARExecutableCodeDirectory + "Makefile.defs"); diff --git a/src/main/java/tmltranslator/TMLModeling.java b/src/main/java/tmltranslator/TMLModeling.java index 08bc0e0b07b171812dc60997d083cd8d5ecdd04f..b33aa9804d2f6df39af7663e8f442676b490ba72 100755 --- a/src/main/java/tmltranslator/TMLModeling.java +++ b/src/main/java/tmltranslator/TMLModeling.java @@ -848,7 +848,7 @@ public class TMLModeling<E> { TMLChannel channel = getChannelByShortName(signalName); if (channel!=null){ for (TMLCPrimitivePort port:channel.ports){ - if (port.checkAuth && port.checkStrongAuthStatus==1){ + if (port.checkAuth){ port.checkStrongAuthStatus = 3; port.mappingName= mappingName; } diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java index fff47053c0011bf2d0393877293038dc5c43b08b..879587c3372fcb9e6726c0163b6ff01acb23fd55 100644 --- a/src/main/java/ui/AvatarDesignPanelTranslator.java +++ b/src/main/java/ui/AvatarDesignPanelTranslator.java @@ -1902,6 +1902,19 @@ public class AvatarDesignPanelTranslator { if (tmp1 != null && tmp2 != null) at.setComputes(tmp1, tmp2); + // Probability + tmp1 = asmdco.getProbability (); + if ((tmp1 != null) && (tmp1.length()>0)) { + error = AvatarSyntaxChecker.isAValidProbabilityExpr(_as, _ab, tmp1); + if (error < 0) { + this.makeError(error, tdp, _ab, tgc, "probability ", tmp1); + tmp1 = null; + } + if (tmp1 != null) { + at.setProbability(new Double(tmp1).doubleValue()); + } + } + // Actions for(String s: asmdco.getActions()) if (s.trim().length() > 0) { diff --git a/src/main/java/ui/avatarinteractivesimulation/AvatarInteractiveSimulationActions.java b/src/main/java/ui/avatarinteractivesimulation/AvatarInteractiveSimulationActions.java index 7df2e86fc152f7fc9e051a3739120b77813c4b38..379bc3dc9673dcc35c553c4828e709d6fc7712d7 100755 --- a/src/main/java/ui/avatarinteractivesimulation/AvatarInteractiveSimulationActions.java +++ b/src/main/java/ui/avatarinteractivesimulation/AvatarInteractiveSimulationActions.java @@ -1,26 +1,26 @@ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * + * * ludovic.apvrille AT enst.fr - * + * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. - * + * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". - * + * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. - * + * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, @@ -31,14 +31,12 @@ * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. - * + * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ - - package ui.avatarinteractivesimulation; import ui.util.IconManager; @@ -50,12 +48,13 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** - * Class AvatarInteractiveSimulationActions - * - * Creation: 21/01/2011 - * @version 1.0 21/01/2011 - * @author Ludovic APVRILLE - * @see ui.TGComponent + * Class AvatarInteractiveSimulationActions + * <p> + * Creation: 21/01/2011 + * + * @author Ludovic APVRILLE + * @version 1.0 21/01/2011 + * @see ui.TGComponent */ public class AvatarInteractiveSimulationActions extends AbstractAction { // Actions @@ -107,7 +106,7 @@ public class AvatarInteractiveSimulationActions extends AbstractAction { public static final int NB_ACTION = 36; - private static final TAction [] actions = new TAction[NB_ACTION]; + private static final TAction[] actions = new TAction[NB_ACTION]; private EventListenerList listeners; @@ -116,13 +115,12 @@ public class AvatarInteractiveSimulationActions extends AbstractAction { public static final String LARGE_ICON = "LargeIcon"; - public AvatarInteractiveSimulationActions(int id) { if (actions[0] == null) { init(); } if (actions[id] == null) { - return ; + return; } putValue(Action.NAME, actions[id].NAME); @@ -193,40 +191,40 @@ public class AvatarInteractiveSimulationActions extends AbstractAction { actions[ACT_ADD_LATENCY] = new TAction("add-latency-command", "Add latency", IconManager.imgic75, IconManager.imgic75, "Add latency", "Add latency checkpoint", '0'); } - public String getActionCommand() { - return (String)getValue(Action.ACTION_COMMAND_KEY); + public String getActionCommand() { + return (String) getValue(Action.ACTION_COMMAND_KEY); } - public String getShortDescription() { - return (String)getValue(Action.SHORT_DESCRIPTION); + public String getShortDescription() { + return (String) getValue(Action.SHORT_DESCRIPTION); } - public String getLongDescription() { - return (String)getValue(Action.LONG_DESCRIPTION); + public String getLongDescription() { + return (String) getValue(Action.LONG_DESCRIPTION); } - public void actionPerformed(ActionEvent evt) { + public void actionPerformed(ActionEvent evt) { //System.out.println("Action performed"); if (listeners != null) { Object[] listenerList = listeners.getListenerList(); // Recreate the ActionEvent and stuff the value of the ACTION_COMMAND_KEY ActionEvent e = new ActionEvent(evt.getSource(), evt.getID(), - (String)getValue(Action.ACTION_COMMAND_KEY)); - for (int i = 0; i <= listenerList.length-2; i += 2) { - ((ActionListener)listenerList[i+1]).actionPerformed(e); + (String) getValue(Action.ACTION_COMMAND_KEY)); + for (int i = 0; i <= listenerList.length - 2; i += 2) { + ((ActionListener) listenerList[i + 1]).actionPerformed(e); } } } - public void addActionListener(ActionListener l) { + public void addActionListener(ActionListener l) { if (listeners == null) { listeners = new EventListenerList(); } listeners.add(ActionListener.class, l); } - public void removeActionListener(ActionListener l) { + public void removeActionListener(ActionListener l) { if (listeners == null) { return; } diff --git a/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java b/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java index 75dbfd19aee4358211df7e9cd3fda05409d0e35e..5cb98aa1e92f7b93fff6bb22ac4ea766adc29392 100755 --- a/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java +++ b/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java @@ -294,10 +294,14 @@ public class JFrameAvatarInteractiveSimulation extends JFrame implements Avatar nbOfAllExecutedElements = 0; resetMetElements(); ass = new AvatarSpecificationSimulation(avspec, this); + + + //ass.initialize(); simulationRunning = false; simulationThread = new Thread(this); simulationThread.start(); + TraceManager.addDev("Init simulation done"); } @@ -326,8 +330,37 @@ public class JFrameAvatarInteractiveSimulation extends JFrame implements Avatar selectedComponentForTransaction2 = null; if (ll != null) { listPendingTransactions.setListData(ll); - int random = (int)(Math.floor((Math.random()*ll.size()))); - listPendingTransactions.setSelectedIndex(random); + + //int random = (int)(Math.floor((Math.random()*ll.size()))); + //listPendingTransactions.setSelectedIndex(random); + + // Use probabilities + double sumProb = 0.0; + for (AvatarSimulationPendingTransaction pt: ll) { + //TraceManager.addDev("prob=" + pt.probability); + sumProb += pt.probability; + } + + + + double rand2 = Math.random() * sumProb; + //TraceManager.addDev("Nb of pending:" + ll.size() + " total prob=" + sumProb + " rand=" + rand2); + + + double prob = 0.0; + int index = 0; + for (AvatarSimulationPendingTransaction pt: ll) { + prob += pt.probability; + //TraceManager.addDev("rand=" + rand2 + " prob=" + prob + " pt.probability=" + pt.probability); + if (rand2 < prob) { + listPendingTransactions.setSelectedIndex(index); + break; + } + index ++; + } + + + } else { listPendingTransactions.setListData(new Vector<AvatarSimulationPendingTransaction>()); } diff --git a/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java-orig b/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java-orig deleted file mode 100755 index 20d396f4c34cfae71babe732cfaac6055685fa88..0000000000000000000000000000000000000000 --- a/src/main/java/ui/avatarinteractivesimulation/JFrameAvatarInteractiveSimulation.java-orig +++ /dev/null @@ -1,1973 +0,0 @@ -/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - - ludovic.apvrille AT enst.fr - - This software is a computer program whose purpose is to allow the - edition of TURTLE analysis, design and deployment diagrams, to - allow the generation of RT-LOTOS or Java code from this diagram, - and at last to allow the analysis of formal validation traces - obtained from external tools, e.g. RTL from LAAS-CNRS and CADP - from INRIA Rhone-Alpes. - - This software is governed by the CeCILL license under French law and - abiding by the rules of distribution of free software. You can use, - modify and/ or redistribute the software under the terms of the CeCILL - license as circulated by CEA, CNRS and INRIA at the following URL - "http://www.cecill.info". - - As a counterpart to the access to the source code and rights to copy, - modify and redistribute granted by the license, users are provided only - with a limited warranty and the software's author, the holder of the - economic rights, and the successive licensors have only limited - liability. - - In this respect, the user's attention is drawn to the risks associated - with loading, using, modifying and/or developing or reproducing the - software by the user in light of its specific status of free software, - that may mean that it is complicated to manipulate, and that also - therefore means that it is reserved for developers and experienced - professionals having in-depth computer knowledge. Users are therefore - encouraged to load and test the software's suitability as regards their - requirements in conditions enabling the security of their systems and/or - data to be ensured and, more generally, to use and operate it in the - same conditions as regards security. - - The fact that you are presently reading this means that you have had - knowledge of the CeCILL license and that you accept its terms. - - /** - * Class JFrameAvatarInteractiveSimulation - * Creation: 21/01/2011 - * version 1.0 21/01/2011 - * @author Ludovic APVRILLE - * @see - */ - -package ui.avatarinteractivesimulation; - -//import java.io.*; -import javax.swing.*; -import javax.swing.event.*; -import javax.swing.table.*; -import java.awt.*; -import java.awt.event.*; -import java.awt.image.*; -import java.io.*; -import java.util.*; - - -import myutil.*; -import ui.*; -import ui.file.*; - -import avatartranslator.*; -import avatartranslator.directsimulation.*; -import ui.avatarbd.*; - - -public class JFrameAvatarInteractiveSimulation extends JFrame implements AvatarSimulationInteraction, ActionListener, Runnable, MouseListener, ItemListener, ListSelectionListener, WindowListener/*, StoppableGUIElement, SteppedAlgorithm, ExternalCall*/ { - private static int TRACED_TRANSACTIONS = 1000; - private static int LAST_TRANSACTIONS = 0; - - - private static String buttonStartS = "Start simulator"; - private static String buttonStopAndCloseS = "Stop simulator and close"; - - private static int NOT_STARTED = 0; - private static int STARTED = 1; - - private static long SPACE_UPDATE_TIME = 100; - - private Frame f; - private MainGUI mgui; - private String title; - - protected JButton buttonClose, buttonStart, buttonStopAndClose; - protected JTextArea jta; - protected JScrollPane jsp; - - protected Thread t; - protected int threadMode = 0; - protected boolean go; - - // Control command - protected JButton resetCommand, runCommand, StopCommand; - protected AvatarMainCommandsToolBar mctb; - protected AvatarSaveCommandsToolBar sctb; - //protected StateCommandsToolBar stctb; - //protected BenchmarkCommandsToolBar bctb; - - - // Commands - JPanel main, mainTop, commands, save, state, infos; - //outputs, cpuPanel; // from MGUI - JCheckBox latex, debug, animate, diploids, hidden, update, openDiagram, animateWithInfo, executeEmptyTransition, executeStateEntering, traceInSD; - JTabbedPane commandTab, infoTab; - protected JTextField displayedTransactionsText, lastTransactionsText; - protected JTextField paramMainCommand; - protected JTextField saveFileName; - protected JTextField stateFileName; - protected JTextField benchmarkFileName; - //protected JComboBox cpus, busses, mems, tasks, chans; - - //List of transactions - - private JList listPendingTransactions; - private TGComponent selectedComponentForTransaction1, selectedComponentForTransaction2; - private AvatarSimulationBlock previousBlock; - - private int invokedLater = 0; - - private int totalNbOfElements = -1; - - - - //private String[] cpuIDs, busIDs, memIDs, taskIDs, chanIDs; - - // Status elements - JLabel statuss, status, time, info, coverage; - - // Task elements - //TaskVariableTableModel tvtm; - //JButton updateTaskVariableInformationButton; - //private JScrollPane jspTaskVariableInfo; - - // Breakpoints - //JPanelBreakPoints jpbp; - - // Set variables - //JPanelSetVariables jpsv; - - // Blocks - private JPanel blockPanel; - private BlockTableModel blocktm; - private JScrollPane jspBlockInfo; - - // Variables - private JPanel variablePanel; - private VariableTableModel variabletm; - private JScrollPane jspVariableInfo; - - // Transactions - private JPanel transactionPanel; - private TransactionTableModel transactiontm; - private JScrollPane jspTransactionInfo; - - // Met elements - private JPanel metElementsPanel; - private MetElementsTableModel metelementstm; - private JScrollPane jspMetElementsInfo; - - - // DisplayedBlocks - private JPanel displayedBlockPanel; - private JScrollPane jspDisplayedBlocks; - private Vector<JCheckBox> displayedBlocks; - - // RandomBlocks - private JPanel randomPanel; - private JTextField randomValue; - private JCheckBox imposeRandom; - private JButton updateRandom; - - // Asynchronous transactions - private JPanel asyncPanel; - private JComboBox comboFIFOs; - private Vector<AvatarInteractiveSimulationFIFOData> fifos; - private JButton delete, up, down; - private JList asyncmsgs; - private int nbOfAsyncMsgs; - - // Sequence Diagram - private AvatarSpecificationSimulationSDPanel sdpanel; - - //JButton updateBlockInformationButton; - - - private int busyMode = 0; // Mode of AvatarSpecificationSimulation - - // For managing actions - public AvatarInteractiveSimulationActions [] actions; - public MouseHandler mouseHandler; - public KeyListener keyHandler; - - - /*private Hashtable <Integer, String> valueTable; - private Hashtable <Integer, Integer> rowTable; - - private Hashtable <Integer, Integer> runningTable; - private Hashtable <String, String> diagramTable;*/ - - - // new - private AvatarSpecification avspec; - private AvatarSpecificationSimulation ass; - private Thread simulationThread; - private boolean resetThread; - private boolean killThread; - - private LinkedList<TGComponent> runningTGComponents; - private int nbOfAllExecutedElements = 0; - private double coverageVal = 0; - - private long previousTime; - - private boolean simulationRunning; - - // Async messages - Vector<AvatarSimulationAsynchronousTransaction> lastAsyncmsgs; - - public JFrameAvatarInteractiveSimulation(Frame _f, MainGUI _mgui, String _title, AvatarSpecification _avspec) { - super(_title); - - f = _f; - mgui = _mgui; - title = _title; - avspec = _avspec; - - addWindowListener(this); - setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE ); - setIconImage(IconManager.img5100); - setBackground(Color.WHITE); - - try { - setBackground(new Color(50, 40, 40, 200)); - } catch (Exception e) { - setBackground(new Color(50, 40, 40)); - } - initActions(); - - initSimulation(); - - makeComponents(); - setComponents(); - } - - private void initSimulation() { - TraceManager.addDev("Init simulation"); - runningTGComponents = new LinkedList<TGComponent>(); - nbOfAllExecutedElements = 0; - resetMetElements(); - ass = new AvatarSpecificationSimulation(avspec, this); - //ass.initialize(); - simulationRunning = false; - simulationThread = new Thread(this); - simulationThread.start(); - TraceManager.addDev("Init simulation done"); - } - - public synchronized void setSimulationRunning() { - simulationRunning = true; - } - - public synchronized void stopSimulationRunning() { - simulationRunning = false; - } - - - public synchronized void updatePending() { - invokedLater = 0; - //TraceManager.addDev("Simulation is already running -> beg of code:" + Thread.currentThread()); - if (ass == null) { - return; - } - - try { - - Vector<AvatarSimulationPendingTransaction> ll = (Vector<AvatarSimulationPendingTransaction>)(ass.getPendingTransitions().clone()); - - listPendingTransactions.clearSelection(); - selectedComponentForTransaction1 = null; - selectedComponentForTransaction2 = null; - if (ll != null) { - listPendingTransactions.setListData(ll); - int random = (int)(Math.floor((Math.random()*ll.size()))); - listPendingTransactions.setSelectedIndex(random); - } else { - listPendingTransactions.setListData(new Vector<AvatarSimulationPendingTransaction>()); - } - } catch (Exception e) {} - - //TraceManager.addDev("Simulation is already running -> end of code:" + Thread.currentThread()); - } - - public void run() { - if (simulationRunning == true) { - updatePending(); - - } else { - setSimulationRunning(); - previousTime = System.currentTimeMillis(); - ass.runSimulation(); - TraceManager.addDev("Simulation thread ended"); - stopSimulationRunning(); - } - } - - - - private JLabel createStatusBar() { - statuss = new JLabel("Ready..."); - statuss.setForeground(ColorManager.InteractiveSimulationText); - statuss.setBorder(BorderFactory.createEtchedBorder()); - return statuss; - } - - public void makeComponents() { - JPanel jp01, jp02; - //jp01.setPreferredSize(new Dimension(375, 400)); - GridBagLayout gridbag01; - GridBagConstraints c01 ; - - //cp = new CommandParser(); - - setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - Container framePanel = getContentPane(); - framePanel.setLayout(new BorderLayout()); - //framePanel.setBackground(ColorManager.InteractiveSimulationBackground); - //framePanel.setForeground(new Color(255, 166, 38)); - - //System.out.println("Button start created"); - //buttonStart = new JButton(actions[InteractiveSimulationActions.ACT_RUN_SIMU]); - buttonStopAndClose = new JButton(actions[AvatarInteractiveSimulationActions.ACT_STOP_AND_CLOSE_ALL]); - //buttonStopAndClose = new JButton(buttonStopAndCloseS, IconManager.imgic27); - - - // statusBar - statuss = createStatusBar(); - framePanel.add(statuss, BorderLayout.SOUTH); - - // Mouse handler - mouseHandler = new MouseHandler(statuss); - - JPanel mainpanel = new JPanel(new BorderLayout()); - //mainpanel.setBackground(ColorManager.InteractiveSimulationBackground); - framePanel.add(mainpanel, BorderLayout.CENTER); - - JPanel jp = new JPanel(); - //jp.setBackground(ColorManager.InteractiveSimulationBackground); - //jp.setPreferredSize(new Dimension(800, 75)); - //jp.add(buttonStart); - jp.add(buttonStopAndClose); - mainpanel.add(jp, BorderLayout.NORTH); - - - //GridBagLayout gridbag02 = new GridBagLayout(); - //GridBagConstraints c02 = new GridBagConstraints(); - //mainTop = new JPanel(gridbag02); - //mainTop.setPreferredSize(new Dimension(800, 375)); - //c02.gridheight = 1; - //c02.weighty = 1.0; - //c02.weightx = 1.0; - //c02.gridwidth = 1; - //c02.fill = GridBagConstraints.BOTH; - //c02.gridheight = 1; - - // Ouput SD - /*jta = new ScrolledJTextArea(); - jta.setBackground(ColorManager.InteractiveSimulationJTABackground); - jta.setForeground(ColorManager.InteractiveSimulationJTAForeground); - jta.setMinimumSize(new Dimension(800, 200)); - jta.setRows(15); - //jta.setMaximumSize(new Dimension(800, 500)); - jta.setEditable(false); - jta.setMargin(new Insets(10, 10, 10, 10)); - jta.setTabSize(3); - jta.append("Interactive simulation ready to run\n"); - Font f = new Font("Courrier", Font.BOLD, 12); - jta.setFont(f); - jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - jsp.setViewportBorder(BorderFactory.createLineBorder(ColorManager.InteractiveSimulationBackground)); - - //jsp.setColumnHeaderView(100); - //jsp.setRowHeaderView(30); - //jsp.setMaximumSize(new Dimension(800, 400));*/ - JPanel lowerPartPanel = new JPanel(); lowerPartPanel.setLayout(new BorderLayout()); - sdpanel = new AvatarSpecificationSimulationSDPanel(ass); - sdpanel.setShowHiddenStates(false); - //ass.setName("Interaction Overview Diagram"); - JScrollPane jsp = new JScrollPane(sdpanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); - sdpanel.setMyScrollPanel(jsp); - jsp.setWheelScrollingEnabled(true); - //jsp.setPreferredSize(new Dimension(800, 400)); - jsp.getVerticalScrollBar().setUnitIncrement(mgui.INCREMENT); - lowerPartPanel.add(jsp, BorderLayout.CENTER); - - - - // Commands - commands = new JPanel(new BorderLayout()); - //commands.setFloatable(true); - //commands.setMinimumSize(new Dimension(300, 250)); - commands.setBorder(new javax.swing.border.TitledBorder("Commands")); - - - - - commandTab = new JTabbedPane(); - commands.add(commandTab, BorderLayout.CENTER); - //commandTab.setBackground(ColorManager.InteractiveSimulationBackground); - - - // Control commands - jp01 = new JPanel(new BorderLayout()); - commandTab.addTab("Control", null, jp01, "Main control commands"); - //jp01.setMinimumSize(new Dimension(375, 400)); - //gridbag01 = new GridBagLayout(); - //c01 = new GridBagConstraints(); - //jp01.setLayout(gridbag01); - - mctb = new AvatarMainCommandsToolBar(this); - jp01.add(mctb, BorderLayout.NORTH); - - jp02 = new JPanel(); - //jp01.setPreferredSize(new Dimension(375, 400)); - gridbag01 = new GridBagLayout(); - c01 = new GridBagConstraints(); - jp02.setLayout(gridbag01); - - c01.gridheight = 1; - c01.weighty = 1.0; - c01.weightx = 1.0; - c01.gridwidth = 1; - c01.fill = GridBagConstraints.BOTH; - c01.gridheight = 1; - - jp02.add(new JLabel("Command parameter: "), c01); - c01.gridwidth = GridBagConstraints.REMAINDER; //end row - paramMainCommand = new JTextField("1", 30); - jp02.add(paramMainCommand, c01); - // list of pending transactions - JPanel panellpt = new JPanel(); - panellpt.setLayout(new BorderLayout()); - panellpt.setBorder(new javax.swing.border.TitledBorder("Pending transactions")); - - listPendingTransactions = new JList(); - //listPendingTransactions.setPreferredSize(new Dimension(400, 300)); - listPendingTransactions.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION ); - listPendingTransactions.addListSelectionListener(this); - JScrollPane scrollPane1 = new JScrollPane(listPendingTransactions); - scrollPane1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); - panellpt.add(scrollPane1); - jp02.add(panellpt, c01); - jp01.add(jp02, BorderLayout.CENTER); - - - // Save commands - jp01 = new JPanel(new BorderLayout()); - - commandTab.addTab("Save trace", null, jp01, "Save commands"); - - sctb = new AvatarSaveCommandsToolBar(this); - jp01.add(sctb, BorderLayout.NORTH); - - jp02 = new JPanel(); - gridbag01 = new GridBagLayout(); - c01 = new GridBagConstraints(); - jp02.setLayout(gridbag01); - - c01.gridheight = 1; - c01.weighty = 1.0; - c01.weightx = 1.0; - c01.gridwidth = GridBagConstraints.REMAINDER; //end row - c01.fill = GridBagConstraints.BOTH; - c01.gridheight = 1; - - jp02.add(new JLabel("File name:"), c01); - saveFileName = new JTextField(30); - jp02.add(saveFileName, c01); - - jp01.add(jp02, BorderLayout.CENTER); - - // Benchmark commands - /*jp01 = new JPanel(new BorderLayout()); - - commandTab.addTab("Benchmarks", null, jp01, "Benchmarks"); - - bctb = new BenchmarkCommandsToolBar(this); - jp01.add(bctb, BorderLayout.NORTH); - - jp02 = new JPanel(); - gridbag01 = new GridBagLayout(); - c01 = new GridBagConstraints(); - jp02.setLayout(gridbag01); - - c01.gridheight = 1; - c01.weighty = 1.0; - c01.weightx = 1.0; - c01.gridwidth = GridBagConstraints.REMAINDER; //end row - c01.fill = GridBagConstraints.BOTH; - c01.gridheight = 1; - - jp02.add(new JLabel("File name:"), c01); - benchmarkFileName = new JTextField(30); - jp02.add(benchmarkFileName, c01); - - jp01.add(jp02, BorderLayout.CENTER);*/ - - - //Info - infos = new JPanel(new BorderLayout()); - infos.setPreferredSize(new Dimension(300, 200)); - //infos.setPreferredSize(new Dimension(400, 450)); - infos.setBorder(new javax.swing.border.TitledBorder("Simulation information")); - - - // Main panels - //mainTop.add(infos, c02); - //mainTop.add(commands, c02); - JSplitPane mainTop = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, commands, infos); - mainTop.setResizeWeight(0.5); - JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, mainTop, lowerPartPanel); - split.setResizeWeight(0.5); - mainpanel.add(split, BorderLayout.CENTER); - - //c02.gridwidth = GridBagConstraints.REMAINDER; //end row - - - infoTab = new JTabbedPane(); - infoTab.setPreferredSize(new Dimension(300, 200)); - infos.add(infoTab, BorderLayout.CENTER); - - // Simulation time - jp02 = new JPanel(); - infos.add(jp02, BorderLayout.NORTH); - jp02.add(new JLabel("Status:")); - status = new JLabel("Unknown"); - status.setForeground(ColorManager.InteractiveSimulationText_UNKNOWN); - jp02.add(status); - jp02.add(new JLabel(" ")); - jp02.add(new JLabel("Time:")); - time = new JLabel("0"); - time.setForeground(ColorManager.InteractiveSimulationText_UNKNOWN); - jp02.add(time); - jp02.add(new JLabel(" ")); - jp02.add(new JLabel("Transactions:")); - info = new JLabel("Unknown"); - jp02.add(info); - jp02.add(new JLabel(" ")); - jp02.add(new JLabel("Coverage:")); - coverage = new JLabel(coverageVal + " %"); - coverage.setForeground(ColorManager.InteractiveSimulationText_UNKNOWN); - jp02.add(coverage); - - // Options - jp01 = new JPanel(); - //jp01.setMinimumSize(new Dimension(375, 400)); - //jp01.setPreferredSize(new Dimension(375, 400)); - gridbag01 = new GridBagLayout(); - c01 = new GridBagConstraints(); - jp01.setLayout(gridbag01); - - - // INFORMATION - - infoTab.addTab("Options", null, jp01, "Options on simulation"); - - c01.gridheight = 1; - c01.weighty = 1.0; - c01.weightx = 1.0; - c01.gridwidth = GridBagConstraints.REMAINDER; //end row - c01.fill = GridBagConstraints.BOTH; - c01.gridheight = 1; - - //jp01.add(new JLabel(" "), c01); - /*latex = new JCheckBox("Generate info in Latex format"); - jp01.add(latex, c01);*/ - /*debug = new JCheckBox("Print messages received from server"); - jp01.add(debug, c01);*/ - animate = new JCheckBox("Animate UML diagrams"); - jp01.add(animate, c01); - diploids = new JCheckBox("Show AVATAR IDs on UML diagrams"); - jp01.add(diploids, c01); - diploids.addItemListener(this); - diploids.setSelected(false); - hidden = new JCheckBox("Show hidden state in sequence diagram"); - jp01.add(hidden, c01); - hidden.addItemListener(this); - hidden.setSelected(false); - animateWithInfo = new JCheckBox("Show transaction progression on UML diagrams"); - //jp01.add(animateWithInfo, c01); - animateWithInfo.addItemListener(this); - animateWithInfo.setSelected(true); - openDiagram = new JCheckBox("Automatically open active state machine diagram"); - jp01.add(openDiagram, c01); - openDiagram.setSelected(true); - //update = new JCheckBox("Automatically update information (variables)"); - //jp01.add(update, c01); - //update.addItemListener(this); - //update.setSelected(true); - - animate.addItemListener(this); - animate.setSelected(true); - - - c01.gridwidth = 1; - traceInSD = new JCheckBox("Trace in sequence diagram"); - jp01.add(traceInSD, c01); - traceInSD.addItemListener(this); - traceInSD.setSelected(true); - jp01.add(new JLabel("# of transactions:"), c01); - displayedTransactionsText = new JTextField(""+TRACED_TRANSACTIONS, 10); - jp01.add(displayedTransactionsText, c01); - //displayedTransactionsText.addActionListener(this); - displayedTransactionsText.getDocument().addDocumentListener(new DocumentListener() { - public void changedUpdate(DocumentEvent e) { - warn(); - } - public void removeUpdate(DocumentEvent e) { - warn(); - } - public void insertUpdate(DocumentEvent e) { - warn(); - } - - public void warn() { - try { - int nb = Integer.parseInt(displayedTransactionsText.getText()); - if ((nb > 0) && (nb <= 100000)){ - statuss.setText("Nb of traced transactions modified to: " + nb); - if (sdpanel != null) { - sdpanel.setNbOfDrawnTransactions(nb); - if (sdpanel.isVisible()) { - sdpanel.repaint(); - } - } - return; - } - } catch (Exception e) { - } - statuss.setText("Unknown / bad number: " + displayedTransactionsText.getText()); - } - }); - jp01.add(new JLabel("Index of last transaction:"), c01); - c01.gridwidth = GridBagConstraints.REMAINDER; //end row - lastTransactionsText = new JTextField(""+LAST_TRANSACTIONS, 10); - jp01.add(lastTransactionsText, c01); - //displayedTransactionsText.addActionListener(this); - lastTransactionsText.getDocument().addDocumentListener(new DocumentListener() { - public void changedUpdate(DocumentEvent e) { - warn(); - } - public void removeUpdate(DocumentEvent e) { - warn(); - } - public void insertUpdate(DocumentEvent e) { - warn(); - } - - public void warn() { - try { - int nb = Integer.parseInt(lastTransactionsText.getText()); - if (nb > -1){ - statuss.setText("Index of last transation modified to: " + nb); - if (sdpanel != null) { - sdpanel.setLastDrawnTransactions(nb); - if (sdpanel.isVisible()) { - sdpanel.repaint(); - } - } - return; - } - } catch (Exception e) { - } - statuss.setText("Unknown / bad number: " + lastTransactionsText.getText()); - } - }); - - - - - executeEmptyTransition = new JCheckBox("Automatically execute empty transitions"); - jp01.add(executeEmptyTransition, c01); - executeEmptyTransition.setSelected(true); - executeEmptyTransition.addItemListener(this); - ass.setExecuteEmptyTransition(executeEmptyTransition.isSelected()); - - executeStateEntering = new JCheckBox("Automatically enter states"); - jp01.add(executeStateEntering, c01); - executeStateEntering.setSelected(true); - executeStateEntering.addItemListener(this); - ass.setExecuteEmptyTransition(executeEmptyTransition.isSelected()); - - - TableSorter sorterPI; - JTable jtablePI; - - // Breakpoints - /*jpbp = new JPanelBreakPoints(this, points); - infoTab.addTab("Breakpoints", null, jpbp, "List of active breakpoints");*/ - - // blocks - blockPanel = new JPanel(); - blockPanel.setLayout(new BorderLayout()); - infoTab.addTab("Blocks", IconManager.imgic1202, blockPanel, "Current state of blocks"); - blocktm = new BlockTableModel(ass); - - sorterPI = new TableSorter(blocktm); - jtablePI = new JTable(sorterPI); - sorterPI.setTableHeader(jtablePI.getTableHeader()); - ((jtablePI.getColumnModel()).getColumn(0)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(1)).setPreferredWidth(75); - ((jtablePI.getColumnModel()).getColumn(2)).setPreferredWidth(80); - ((jtablePI.getColumnModel()).getColumn(3)).setPreferredWidth(150); - jtablePI.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); - jspBlockInfo = new JScrollPane(jtablePI); - jspBlockInfo.setWheelScrollingEnabled(true); - jspBlockInfo.getVerticalScrollBar().setUnitIncrement(10); - jspBlockInfo.setPreferredSize(new Dimension(250, 300)); - blockPanel.add(jspBlockInfo, BorderLayout.CENTER); - - // Variables - variablePanel = new JPanel(); - variablePanel.setLayout(new BorderLayout()); - infoTab.addTab("Variables", IconManager.imgic1202, variablePanel, "Variables"); - variabletm = new VariableTableModel(ass); - - sorterPI = new TableSorter(variabletm); - jtablePI = new JTable(sorterPI); - sorterPI.setTableHeader(jtablePI.getTableHeader()); - ((jtablePI.getColumnModel()).getColumn(0)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(1)).setPreferredWidth(75); - ((jtablePI.getColumnModel()).getColumn(2)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(3)).setPreferredWidth(100); - jtablePI.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); - jspVariableInfo = new JScrollPane(jtablePI); - jspVariableInfo.setWheelScrollingEnabled(true); - jspVariableInfo.getVerticalScrollBar().setUnitIncrement(10); - jspVariableInfo.setPreferredSize(new Dimension(250, 300)); - variablePanel.add(jspVariableInfo, BorderLayout.CENTER); - //updateTaskInformationButton = new JButton(actions[InteractiveSimulationActions.ACT_UPDATE_TASKS]); - //taskPanel.add(updateTaskInformationButton, BorderLayout.SOUTH); - - // Transactions - transactionPanel = new JPanel(); - transactionPanel.setLayout(new BorderLayout()); - infoTab.addTab("Transactions", IconManager.imgic1202, transactionPanel, "Transactions"); - transactiontm = new TransactionTableModel(ass); - - /*sorterPI = new TableSorter(transactiontm); - jtablePI = new JTable(sorterPI); - sorterPI.setTableHeader(jtablePI.getTableHeader()); - ((jtablePI.getColumnModel()).getColumn(0)).setPreferredWidth(50); - ((jtablePI.getColumnModel()).getColumn(1)).setPreferredWidth(75); - ((jtablePI.getColumnModel()).getColumn(2)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(3)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(4)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(5)).setPreferredWidth(75); - ((jtablePI.getColumnModel()).getColumn(6)).setPreferredWidth(100); - jtablePI.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); - jspTransactionInfo = new JScrollPane(jtablePI); - jspTransactionInfo.setWheelScrollingEnabled(true); - jspTransactionInfo.getVerticalScrollBar().setUnitIncrement(10); - jspTransactionInfo.setPreferredSize(new Dimension(250, 300)); - transactionPanel.add(jspTransactionInfo, BorderLayout.CENTER);*/ - - jtablePI = new JTable(transactiontm); - ((jtablePI.getColumnModel()).getColumn(0)).setPreferredWidth(50); - ((jtablePI.getColumnModel()).getColumn(1)).setPreferredWidth(75); - ((jtablePI.getColumnModel()).getColumn(2)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(3)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(4)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(5)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(6)).setPreferredWidth(75); - ((jtablePI.getColumnModel()).getColumn(7)).setPreferredWidth(100); - jtablePI.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); - jspTransactionInfo = new JScrollPane(jtablePI); - jspTransactionInfo.setWheelScrollingEnabled(true); - jspTransactionInfo.getVerticalScrollBar().setUnitIncrement(10); - jspTransactionInfo.setPreferredSize(new Dimension(250, 300)); - transactionPanel.add(jspTransactionInfo, BorderLayout.CENTER); - - - // Met elements - metElementsPanel = new JPanel(); - metElementsPanel.setLayout(new BorderLayout()); - infoTab.addTab("Met states", IconManager.imgic1202, metElementsPanel, "Met states"); - metelementstm = new MetElementsTableModel(ass); - - sorterPI = new TableSorter(metelementstm); - jtablePI = new JTable(sorterPI); - sorterPI.setTableHeader(jtablePI.getTableHeader()); - ((jtablePI.getColumnModel()).getColumn(0)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(1)).setPreferredWidth(100); - ((jtablePI.getColumnModel()).getColumn(2)).setPreferredWidth(100); - jtablePI.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); - jspMetElementsInfo = new JScrollPane(jtablePI); - jspMetElementsInfo.setWheelScrollingEnabled(true); - jspMetElementsInfo.getVerticalScrollBar().setUnitIncrement(10); - jspMetElementsInfo.setPreferredSize(new Dimension(250, 300)); - metElementsPanel.add(jspMetElementsInfo, BorderLayout.CENTER); - - - // Displayed blocks - displayedBlockPanel = new JPanel(); - displayedBlockPanel.setLayout(new GridBagLayout()); - GridBagConstraints c = new GridBagConstraints(); - - c.gridheight = 1; - c.weighty = 1.0; - c.weightx = 1.0; - c.gridwidth = GridBagConstraints.REMAINDER; //end row - c.fill = GridBagConstraints.BOTH; - c.gridheight = 1; - - displayedBlocks = new Vector<JCheckBox>(); - for(AvatarSimulationBlock block: ass.getSimulationBlocks()) { - JCheckBox jcb = new JCheckBox(block.getName(), true); - block.selected = true; - jcb.addActionListener(this); - //TraceManager.addDev("Adding block: " + block); - displayedBlocks.add(jcb); - displayedBlockPanel.add(jcb, c); - } - ass.computeSelectedSimulationBlocks(); - - jspDisplayedBlocks = new JScrollPane(displayedBlockPanel); - jspDisplayedBlocks.setWheelScrollingEnabled(true); - jspDisplayedBlocks.getVerticalScrollBar().setUnitIncrement(10); - jspDisplayedBlocks.setPreferredSize(new Dimension(250, 300)); - infoTab.addTab("Displayed blocks", IconManager.imgic1202, jspDisplayedBlocks, "Displayed blocks"); - - //Randomness - randomPanel = new JPanel(); - randomPanel.setLayout(new GridBagLayout()); - GridBagConstraints cr = new GridBagConstraints(); - - cr.gridheight = 1; - cr.weighty = 1.0; - cr.weightx = 1.0; - cr.gridwidth = GridBagConstraints.REMAINDER; //end row - cr.fill = GridBagConstraints.BOTH; - cr.gridheight = 1; - imposeRandom = new JCheckBox("Force random value"); - imposeRandom.addActionListener(this); - randomPanel.add(imposeRandom, cr); - cr.gridwidth = 1; - cr.fill = GridBagConstraints.HORIZONTAL; - randomPanel.add(new JLabel("value:"), cr); - randomValue = new JTextField(); - randomPanel.add(randomValue, cr); - cr.gridwidth = GridBagConstraints.REMAINDER; //end row - updateRandom = new JButton("Update", IconManager.imgic16); - updateRandom.setToolTipText("Update random value"); - randomPanel.add(updateRandom, cr); - updateRandom.addActionListener(this); - - infoTab.addTab("Randomness", IconManager.imgic1202, randomPanel, "Randomness"); - - imposeRandom.setSelected(false); - randomValue.setEnabled(false); - - - //Asynchronous - - // Making vector of fifos - AvatarInteractiveSimulationFIFOData fifo; - fifos = new Vector<AvatarInteractiveSimulationFIFOData>(); - for(AvatarRelation ar: avspec.getRelations()) { - if (ar.isAsynchronous()) { - fifo = new AvatarInteractiveSimulationFIFOData(ar); - fifos.add(fifo); - } - } - - - asyncPanel = new JPanel(); - asyncPanel.setLayout(new GridBagLayout()); - GridBagConstraints ca = new GridBagConstraints(); - - ca.gridheight = 1; - ca.weighty = 1.0; - ca.weightx = 1.0; - ca.gridwidth = GridBagConstraints.REMAINDER; //end row - ca.fill = GridBagConstraints.HORIZONTAL; - ca.gridheight = 1; - - comboFIFOs = new JComboBox(fifos); - comboFIFOs.addActionListener(this); - asyncPanel.add(comboFIFOs, ca); - ca.fill = GridBagConstraints.BOTH; - - JPanel borderjlist = new JPanel(new GridBagLayout()); - GridBagConstraints cb = new GridBagConstraints(); - - cb.gridheight = 1; - cb.weighty = 1.0; - cb.weightx = 1.0; - cb.gridwidth = GridBagConstraints.REMAINDER; //end row - cb.fill = GridBagConstraints.BOTH; - cb.gridheight = 1; - borderjlist.setBorder(new javax.swing.border.TitledBorder("Top of selected FIFO:")); - asyncmsgs = new JList(); - JScrollPane pane = new JScrollPane(asyncmsgs); - borderjlist.add(pane, cb); - asyncPanel.add(borderjlist, ca); - infoTab.addTab("Asynch. msg", IconManager.imgic1202, asyncPanel, "Asynch. msg."); - - ca.fill = GridBagConstraints.NONE; - ca.gridwidth = 1; - delete = new JButton(actions[AvatarInteractiveSimulationActions.ACT_DELETE_ASYNC_MSG]); - //delete.addActionListener(this); - asyncPanel.add(delete, ca); - up = new JButton(actions[AvatarInteractiveSimulationActions.ACT_UP_ASYNC_MSG]); - //up.addActionListener(this); - asyncPanel.add(up, ca); - ca.gridwidth = GridBagConstraints.REMAINDER; //end row - down = new JButton(actions[AvatarInteractiveSimulationActions.ACT_DOWN_ASYNC_MSG]); - //down.addActionListener(this); - asyncPanel.add(down, ca); - setDeleteUpDown(); - asyncmsgs.addListSelectionListener(this); - - - pack(); - - } - - private void initActions() { - actions = new AvatarInteractiveSimulationActions[AvatarInteractiveSimulationActions.NB_ACTION]; - for(int i=0; i<AvatarInteractiveSimulationActions.NB_ACTION; i++) { - actions[i] = new AvatarInteractiveSimulationActions(i); - actions[i].addActionListener(this); - //actions[i].addKeyListener(this); - } - - //cpuIDs = makeCPUIDs(); - //busIDs = makeBusIDs(); - //memIDs = makeMemIDs(); - //taskIDs = makeTasksIDs(); - //chanIDs = makeChanIDs(); - } - - - - public void setComponents() { - setAll(); - animateDiagrams(); - animateFutureTransactions(); - } - - public void close() { - //killThread(); - if (ass != null) { - ass.killSimulation(); - } - dispose(); - setVisible(false); - runningTGComponents.clear(); - resetMetElements(); - mgui.setAvatarAnimate(false); - } - - public void runSimulation() { - previousTime = System.currentTimeMillis(); - if (ass != null) { - ass.setNbOfCommands(AvatarSpecificationSimulation.MAX_TRANSACTION_IN_A_ROW); - ass.goSimulation(); - //ass.backOneTransactionBunch(); - } - } - - public void runXCommands() { - String txt = paramMainCommand.getText(); - int nb; - try { - nb = Math.max(1, Integer.decode(txt).intValue()); - } catch (Exception e) { - nb = 1; - } - if (ass != null) { - ass.setNbOfCommands(nb); - previousTime = System.currentTimeMillis(); - ass.goSimulation(); - } - } - - public void stopSimulation() { - //previousTime = System.currentTimeMillis(); - if (ass != null) { - ass.stopSimulation(); - } - } - - public void resetSimulation() { - //resetThread(); - previousTime = System.currentTimeMillis(); - if (ass != null) { - resetMetElements(); - ass.resetSimulation(); - //ass.backOneTransactionBunch(); - } - //ass.killSimulation(); - } - - public void backwardOneTransaction() { - previousTime = System.currentTimeMillis(); - ass.backOneTransactionBunch(); - } - - - public void mouseClicked(MouseEvent e) {} - - public void mouseEntered(MouseEvent e) {} - - public void mouseExited(MouseEvent e) {} - - public void mousePressed(MouseEvent e){ - /*if (e.getSource() == sendTextCommand) { - if (sendTextCommand.isEnabled()) { - sendCommand(); - } - } else if (e.getSource() == printHelpTextCommands) { - helpOnCommand(); - } else if (e.getSource() == listTextCommands) { - listTextCommands(); - } /*else if (e.getSource() == resetCommand) { - sendCommand("reset"); - } else if (e.getSource() == runCommand) { - sendCommand("run-to-next-breakpoint"); - } else if (e.getSource() == StopCommand) { - sendCommand("stop"); - }*/ - } - - // Command management - - public void printSeparator() { - jta.append("-------------------------------------------------------------\n"); - } - - - - public void setMode(int _mode) { - busyMode = _mode; - //TraceManager.addDev("****************** mode set to " + busyMode); - if (ass != null) { - if (ass.getPendingTransitions() != null) { - //TraceManager.addDev("# of Pending transactions: " + ass.getPendingTransitions().size()); - } - } - setAll(); - - - // Diagram animation? - if (!(busyMode == AvatarSpecificationSimulation.GATHER) && !(busyMode == AvatarSpecificationSimulation.EXECUTE)) { - //TraceManager.addDev("Animating"); - updateMetElements(); - updateTransactionsTable(); - updateAsynchronousChannels(); - animateDiagrams(); - } - - animateFutureTransactions(); - - } - - public void updateTransactionAndTime(int _nbOfTransactions, long clockValue) { - //TraceManager.addDev("Update transactions and time"); - long timeNow = System.currentTimeMillis(); - if (timeNow - previousTime > SPACE_UPDATE_TIME) { - previousTime = timeNow; - setLabelColors(); - } - } - - public void setAll() { - boolean b= true; - - switch(busyMode) { - case AvatarSpecificationSimulation.DONT_EXECUTE: - actions[AvatarInteractiveSimulationActions.ACT_RUN_SIMU].setEnabled(true); - actions[AvatarInteractiveSimulationActions.ACT_BACK_ONE].setEnabled(true); - actions[AvatarInteractiveSimulationActions.ACT_RUN_X_COMMANDS].setEnabled(true); - actions[AvatarInteractiveSimulationActions.ACT_RESET_SIMU].setEnabled(true); - actions[AvatarInteractiveSimulationActions.ACT_STOP_SIMU].setEnabled(false); - - b = true; - break; - case AvatarSpecificationSimulation.GATHER: - case AvatarSpecificationSimulation.EXECUTE: - actions[AvatarInteractiveSimulationActions.ACT_RUN_SIMU].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_BACK_ONE].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_RUN_X_COMMANDS].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_RESET_SIMU].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_STOP_SIMU].setEnabled(true); - b = false; - break; - case AvatarSpecificationSimulation.TERMINATED: - actions[AvatarInteractiveSimulationActions.ACT_RUN_SIMU].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_BACK_ONE].setEnabled(true); - actions[AvatarInteractiveSimulationActions.ACT_RUN_X_COMMANDS].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_RESET_SIMU].setEnabled(true); - actions[AvatarInteractiveSimulationActions.ACT_STOP_SIMU].setEnabled(false); - b = true; - break; - case AvatarSpecificationSimulation.INITIALIZE: - case AvatarSpecificationSimulation.RESET: - case AvatarSpecificationSimulation.KILLED: - actions[AvatarInteractiveSimulationActions.ACT_RUN_SIMU].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_BACK_ONE].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_RUN_X_COMMANDS].setEnabled(false); - actions[AvatarInteractiveSimulationActions.ACT_RESET_SIMU].setEnabled(true); - actions[AvatarInteractiveSimulationActions.ACT_STOP_SIMU].setEnabled(false); - b = true; - break; - } - - actions[AvatarInteractiveSimulationActions.ACT_SAVE_SD_PNG].setEnabled(b); - actions[AvatarInteractiveSimulationActions.ACT_SAVE_SVG].setEnabled(b); - actions[AvatarInteractiveSimulationActions.ACT_SAVE_TXT].setEnabled(b); - actions[AvatarInteractiveSimulationActions.ACT_PRINT_BENCHMARK].setEnabled(b); - actions[AvatarInteractiveSimulationActions.ACT_SAVE_BENCHMARK].setEnabled(b); - actions[AvatarInteractiveSimulationActions.ACT_ZOOM_IN].setEnabled(b); - actions[AvatarInteractiveSimulationActions.ACT_ZOOM_OUT].setEnabled(b); - - setLabelColors(); - - if ((blockPanel != null) && (blockPanel.isVisible())) { - blockPanel.repaint(); - } - - if ((variablePanel != null) && (variablePanel.isVisible())) { - variablePanel.repaint(); - } - - if ((sdpanel != null) && (sdpanel.isVisible())) { - sdpanel.repaint(); - sdpanel.scrollToLowerPosition(); - } - - // Delete, up, down - setDeleteUpDown(b); - } - - public boolean isBusy() { - if (busyMode == AvatarSpecificationSimulation.EXECUTE) { - return true; - } - - if (busyMode == AvatarSpecificationSimulation.GATHER) { - return true; - } - - return false; - } - - - public void setDeleteUpDown() { - setDeleteUpDown(!isBusy()); - } - - public void setDeleteUpDown(boolean b) { - if (down != null) { - delete.setEnabled(b && (asyncmsgs.getSelectedIndex() > -1)); - up.setEnabled(b && (asyncmsgs.getSelectedIndex() > 0)); - down.setEnabled(b && (asyncmsgs.getSelectedIndex() > -1) && (asyncmsgs.getSelectedIndex() < (nbOfAsyncMsgs-1 ))); - } - } - - public void animateFutureTransactions() { - setContentOfListOfPendingTransactions(); - } - - public void setLabelColors() { - if ((time !=null) && (status != null) && (info != null) && (coverage != null)) { - String oldTime = time.getText(); - int index = oldTime.indexOf("("); - if (index != -1) { - oldTime = oldTime.substring(0, index).trim(); - } - String newTime = ""+ass.getClockValue(); - if (oldTime.compareTo(newTime) != 0) { - newTime += " (before:" + oldTime + ")"; - } - time.setText(newTime); - if (ass.getAllTransactions() != null) { - info.setText(""+ass.getAllTransactions().size()); - } else { - info.setText("0"); - } - switch(busyMode) { - case AvatarSpecificationSimulation.DONT_EXECUTE: - status.setText("Stopped"); - status.setForeground(ColorManager.InteractiveSimulationText_UNKNOWN); - time.setForeground(ColorManager.InteractiveSimulationText_UNKNOWN); - info.setForeground(ColorManager.InteractiveSimulationText_UNKNOWN); - coverage.setForeground(ColorManager.InteractiveSimulationText_UNKNOWN); - break; - case AvatarSpecificationSimulation.GATHER: - case AvatarSpecificationSimulation.EXECUTE: - case AvatarSpecificationSimulation.RESET: - case AvatarSpecificationSimulation.INITIALIZE: - status.setText("Running..."); - status.setForeground(ColorManager.InteractiveSimulationText_BUSY); - time.setForeground(ColorManager.InteractiveSimulationText_BUSY); - info.setForeground(ColorManager.InteractiveSimulationText_BUSY); - coverage.setForeground(ColorManager.InteractiveSimulationText_BUSY); - break; - case AvatarSpecificationSimulation.TERMINATED: - status.setText("Terminated"); - status.setForeground(ColorManager.InteractiveSimulationText_TERM); - time.setForeground(ColorManager.InteractiveSimulationText_TERM); - info.setForeground(ColorManager.InteractiveSimulationText_TERM); - coverage.setForeground(ColorManager.InteractiveSimulationText_TERM); - break; - case AvatarSpecificationSimulation.KILLED: - status.setText("killed"); - status.setForeground(ColorManager.InteractiveSimulationText_TERM); - time.setForeground(ColorManager.InteractiveSimulationText_TERM); - info.setForeground(ColorManager.InteractiveSimulationText_TERM); - coverage.setForeground(ColorManager.InteractiveSimulationText_TERM); - break; - } - } - } - - public void zoomIn() { - if (sdpanel != null) { - sdpanel.zoomIn(); - } - } - - public void zoomOut() { - if (sdpanel != null) { - sdpanel.zoomOut(); - } - } - - public synchronized void setContentOfListOfPendingTransactions() { - if (invokedLater == 0) { - invokedLater = 1; - //TraceManager.addDev("Invoke later:" + invokedLater); - EventQueue.invokeLater(this); - } - } - - public void resetMetElements() { - if (avspec.getReferenceObject() instanceof AvatarDesignPanel) { - ((AvatarDesignPanel)(avspec.getReferenceObject())).resetMetElements(); - - } else if (avspec.getReferenceObject() instanceof AttackTreePanel) { - ((AttackTreePanel)(avspec.getReferenceObject())).resetMetElements(); - } - - if (coverage != null) { - coverage.setText("0 %"); - } - } - - public void updateMetElements() { - Hashtable<AvatarStateMachineElement, Integer> hashOfAllElements = AvatarSimulationTransaction.hashOfAllElements; - TGComponent tgc; - Object o; - - - if ((totalNbOfElements == -1) && (ass != null)){ - totalNbOfElements = 0; - Vector<Object> mettableElements = new Vector<Object>(); - for(AvatarSimulationBlock asb: ass.getSimulationBlocks()) { - AvatarBlock ab = asb.getBlock(); - if (ab != null) { - //if (!(ab.getName().startsWith("Timer__"))) { - AvatarStateMachine asm = ab.getStateMachine(); - if (asm != null) { - for(AvatarStateMachineElement elt: asm.getListOfElements()) { - Object obj = elt.getReferenceObject(); - if (obj != null) { - - // Verifier que obj est une element de machine à états - if (obj.getClass().getPackage().getName().compareTo("ui.avatarsmd") == 0) { - if (!(mettableElements.contains(obj))) { - mettableElements.add(obj); - } - } - - } - } - } - //for(Avatar - //totalNbOfElements = mettable - //} - } - } - totalNbOfElements = mettableElements.size(); - //totalNbOfElements = ass.getNbOfASMGraphicalElements(); - } - - if (hashOfAllElements == null) { - nbOfAllExecutedElements = 0; - return; - } - - int total = 0; - if (hashOfAllElements.hashCode() != nbOfAllExecutedElements) { - Object objs[] = hashOfAllElements.keySet().toArray(); - //int total = 0; - //int totalMet = 0; - //TraceManager.addDev("Parsing array of elements: " + objs.length); - for(int i=0; i<objs.length; i++) { - o = objs[i]; - //TraceManager.addDev("objs: " + o); - Object oo = ((AvatarStateMachineElement)o).getReferenceObject(); - if (oo != null) { - tgc = (TGComponent)oo; - /*if (tgc.getClass().getPackage().getName().compareTo("ui.avatarsmd") == 0) { - total ++; - }*/ - //TraceManager.addDev("TGComponent: " + tgc); - int met = hashOfAllElements.get(o).intValue(); - if ((met > 0) && (tgc.getClass().getPackage().getName().compareTo("ui.avatarsmd") == 0)) { - total ++; - } - tgc.setAVATARMet(met); - //total ++; - //if (met >0) { - //totalMet ++; - //} - - } - - } - nbOfAllExecutedElements = hashOfAllElements.hashCode(); - if ((totalNbOfElements != -1)) { - //TraceManager.addDev("totalMet=" + hashOfAllElements.size() + " total=" + totalNbOfElements); - double cov = (total*1000.0)/totalNbOfElements; - cov = Math.floor(cov); - coverageVal = cov / 10; - if(coverage != null) { - coverage.setText(""+ coverageVal + "%"); - } - } - } - //nbOfAllExecutedElements = hashOfAllElements.hashCode(); - } - - public void updateTransactionsTable() { - if (transactiontm != null) { - transactiontm.fireTableStructureChanged(); - } - } - - - public String[] getFirstMessagesOnEachConnectorSide(AvatarBDPortConnector conn) { - String []messages = new String[2]; - messages[0] = null; - messages[1] = null; - boolean b0, b1; - AvatarRelation ar; - AvatarBlock ab; - int index; - String info; - - if (asyncmsgs == null) { - return messages; - } - - b0 = false; b1 = false; - for(AvatarSimulationAsynchronousTransaction msg: lastAsyncmsgs) { - ar = msg.getRelation(); - if (ar.hasReferenceObject(conn)) { - ab = ar.getInBlock(msg.getIndex()); - - if (ab == ar.block1) { - info = ar.getSignal1(msg.getIndex()).getName(); - index = 0; - } else { - info = ar.getSignal2(msg.getIndex()).getName(); - index = 1; - } - - info += msg.parametersToString(); - - if ((index == 0) && (!b0)) { - b0 = true; - messages[0] = info; - } else if ((index == 1) && (!b1)) { - b1 = true; - messages[1] = info; - } - - if (b0 && b1) { - break; - } - } - - } - - return messages; - } - - - public void updateAsynchronousChannels() { - - if (ass != null) { - lastAsyncmsgs = (Vector<AvatarSimulationAsynchronousTransaction>)(ass.getAsynchronousMessages().clone()); - - if (fifos != null) { - for(AvatarInteractiveSimulationFIFOData fifo: fifos) { - fifo.nb=0; - } - - - } - - if (lastAsyncmsgs != null) { - - if (lastAsyncmsgs.size() > 0) { - for(AvatarSimulationAsynchronousTransaction msg: lastAsyncmsgs) { - for(AvatarInteractiveSimulationFIFOData fifo0: fifos) { - if (fifo0.fifo == msg.getRelation()) { - fifo0.nb ++; - break; - } - } - } - } - - if (asyncPanel != null) { - asyncPanel.revalidate(); - if (comboFIFOs != null) { - comboFIFOs.revalidate(); - comboFIFOs.repaint(); - } - } - - - - if (asyncmsgs != null) { - AvatarInteractiveSimulationFIFOData currentFifo = (AvatarInteractiveSimulationFIFOData)(comboFIFOs.getSelectedItem()); - if (currentFifo != null) { - nbOfAsyncMsgs = 0; - Vector<AvatarSimulationAsynchronousTransaction> vectorForList = new Vector<AvatarSimulationAsynchronousTransaction>(); - for(AvatarSimulationAsynchronousTransaction as: lastAsyncmsgs) { - if (as.getRelation() == currentFifo.fifo) { - vectorForList.add(as); - nbOfAsyncMsgs++; - } - } - //Collections.reverse(vectorForList); - asyncmsgs.setListData(vectorForList); - } - } - - } - } - } - - public void animateDiagrams() { - if ((animate != null) && (ass != null) && (ass.getSimulationBlocks() != null)) { - if (animate.isSelected()) { - // We go through all blocks - runningTGComponents.clear(); - AvatarStateMachineElement asme; - TGComponent tgc; - for(AvatarSimulationBlock block: ass.getSimulationBlocks()) { - asme = block.getCurrentAvatarElement(); - if (asme != null) { - // Search for corresponding element in avatar spec - tgc = (TGComponent)(asme.getReferenceObject()); - if (tgc != null) { - //TraceManager.addDev("Found an object:" + tgc); - runningTGComponents.add(tgc); - } - } - } - if (openDiagram.isSelected()) { - if (ass.getPreviousBlock() != null) { - //TraceManager.addDev("Open SMD diag" + ass.getPreviousBlock().getName()); - mgui.openAVATARSMD(ass.getPreviousBlock().getName()); - } - } else { - //Refresh current diagram - mgui.refreshCurrentPanel(); - } - } - mgui.setAvatarAnimate(animate.isSelected()); - } - //TraceManager.addDev("End animate diag"); - } - - public boolean isRunningComponent(TGComponent _tgc) { - if (isVisible()) { - return runningTGComponents.contains(_tgc); - } - return false; - } - - public boolean isSelectedComponentFromTransaction(TGComponent _tgc) { - if (isVisible()) { - return (_tgc == selectedComponentForTransaction1) || (_tgc == selectedComponentForTransaction2); - } - return false; - } - - public void actSaveTxt() { - TraceManager.addDev("Saving in txt format"); - String fileName = saveFileName.getText().trim(); - - if (fileName.length() == 0) { - fileName += "simulationtrace_fromttool.txt"; - } - - - if (ConfigurationTTool.isConfigured(ConfigurationTTool.IMGPath)) { - fileName = ConfigurationTTool.IMGPath + System.getProperty("file.separator") + fileName; - } else { - // Using model directory - String path = mgui.getModelFileFullPath(); - fileName = path.substring(0,path.lastIndexOf(File.separator)+1) + fileName; - TraceManager.addDev("New Filename = " + fileName); - } - - - - boolean ok = true; - - try { - ok = FileUtils.checkFileForSave(new File(fileName)); - } catch (Exception e) { - TraceManager.addDev("Exception=" + e.getMessage()); - ok = false; - } - - if (!ok) { - JOptionPane.showMessageDialog(this, - "The capture could not be performed: the file name or path is not valid", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - - try { - FileUtils.saveFile(fileName, ass.getStringExecutedTransactions()); - - } catch (Exception e) { - JOptionPane.showMessageDialog(this, - "The simulation trace in text format could not be saved: " + e.getMessage(), - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - JOptionPane.showMessageDialog(this, - "Simulation trace was saved in " + fileName, - "Error", - JOptionPane.INFORMATION_MESSAGE); - - //ass.printExecutedTransactions(); - } - - - public void actSaveSvg() { - TraceManager.addDev("Saving in svg format"); - - // Testing file for save - - String fileName = saveFileName.getText().trim(); - - if (fileName.length() == 0) { - fileName += "simulationtrace_fromttool.svg"; - } - - if (ConfigurationTTool.isConfigured(ConfigurationTTool.IMGPath)) { - fileName = ConfigurationTTool.IMGPath + System.getProperty("file.separator") + fileName; - } else { - // Using model directory - String path = mgui.getModelFileFullPath(); - fileName = path.substring(0,path.lastIndexOf(File.separator)+1) + fileName; - TraceManager.addDev("New Filename = " + fileName); - } - - boolean ok = true; - - try { - ok = FileUtils.checkFileForSave(new File(fileName)); - } catch (Exception e) { - ok = false; - } - - if (!ok) { - JOptionPane.showMessageDialog(this, - "The capture could not be performed: the specified file is not valid", - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - - - StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" standalone=\"no\"?>\n"); - sb.append("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n"); - sb.append("<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n"); - - - SVGGraphics svgg = new SVGGraphics(sdpanel.getLastGraphics()); - - RepaintManager.currentManager(this).setDoubleBufferingEnabled(false); - //this.paint(svgg); - TraceManager.addDev("Painting for svg"); - sdpanel.paintComponent(svgg); - TraceManager.addDev("Painting for svg done"); - sb.append(svgg.getSVGString()); - RepaintManager.currentManager(this).setDoubleBufferingEnabled(true); - - sb.append("</svg>"); - - try { - FileUtils.saveFile(fileName, sb.toString()); - - } catch (Exception e) { - JOptionPane.showMessageDialog(this, - "The capture could not be performed: " + e.getMessage(), - "Error", - JOptionPane.INFORMATION_MESSAGE); - return; - } - - JOptionPane.showMessageDialog(this, - "The capture was performed in " + fileName, - "Error", - JOptionPane.INFORMATION_MESSAGE); - - //TraceManager.addDev("Svg=" + sb.toString()); - - //return sb.toString(); - - } - - public void actSaveSDPNG() { - //Saving PNG file; - BufferedImage bi; - File file; - - bi = sdpanel.performCapture(); - - String filePath=""; - if (ConfigurationTTool.isConfigured(ConfigurationTTool.IMGPath)) { - filePath += ConfigurationTTool.IMGPath; - if (!filePath.endsWith(File.separator)) { - filePath += File.separator; - } - } else { - String path = mgui.getModelFileFullPath(); - filePath = path.substring(0,path.lastIndexOf(File.separator)+1); - } - - if ((saveFileName.getText() != null) && (saveFileName.getText().length() > 0)) { - filePath += saveFileName.getText(); - } else { - filePath += "simulationtrace_fromttool.png"; - } - - file = new File(filePath); - - mgui.writeImageCapture(bi, file, true); - } - - public void deleteAsyncMsg() { - //TraceManager.addDev("Deleting async msg"); - if ((ass != null) && (!isBusy())){ - int index = asyncmsgs.getSelectedIndex(); - if (index > -1) { - boolean pendingModified = ass.removeAsyncMessage(((AvatarInteractiveSimulationFIFOData)(comboFIFOs.getSelectedItem())).fifo, index); - updateAsynchronousChannels(); - if (pendingModified) { - updatePending(); - } - } - } - - } - - public void upAsyncMsg() { - //TraceManager.addDev("Up async msg"); - if ((ass != null) && (!isBusy())){ - int index = asyncmsgs.getSelectedIndex(); - if (index > 0) { - ass.moveAsyncMessage(((AvatarInteractiveSimulationFIFOData)(comboFIFOs.getSelectedItem())).fifo, index ,index-1); - updateAsynchronousChannels(); - asyncmsgs.setSelectedIndex(index-1); - } - } - - //printFullList(); - - } - - public void downAsyncMsg() { - //TraceManager.addDev("Down async msg"); - if ((ass != null) && (!isBusy())){ - int index = asyncmsgs.getSelectedIndex(); - if (index > -1) { - //TraceManager.addDev("Moving from index: " + index + " to: " + (index+1)); - ass.moveAsyncMessage(((AvatarInteractiveSimulationFIFOData)(comboFIFOs.getSelectedItem())).fifo, index, index+1); - updateAsynchronousChannels(); - //TraceManager.addDev("Selecting list at index:" + index); - asyncmsgs.repaint(); - asyncmsgs.setSelectedIndex(index+1); - } - } - //printFullList(); - } - - public void printFullList() { - int i = 0; - if (ass != null) { - for(AvatarSimulationAsynchronousTransaction tr: ass.getAsynchronousMessages()) { - TraceManager.addDev("#" + i + "\t: " + tr); - i++; - } - } - } - - - // Mouse management - public void mouseReleased(MouseEvent e) {} - - - - /** - * This adapter is constructed to handle mouse over component events. - */ - private class MouseHandler extends MouseAdapter { - - private JLabel label; - - /** - * ctor for the adapter. - * @param label the JLabel which will recieve value of the - * Action.LONG_DESCRIPTION key. - */ - public MouseHandler(JLabel label) { - setLabel(label); - } - - public void setLabel(JLabel label) { - this.label = label; - } - - public void mouseEntered(MouseEvent evt) { - if (evt.getSource() instanceof AbstractButton) { - AbstractButton button = (AbstractButton)evt.getSource(); - Action action = button.getAction(); - if (action != null) { - String message = (String)action.getValue(Action.LONG_DESCRIPTION); - label.setText(message); - } - } - } - } - - public void actionPerformed(ActionEvent evt) { - String command = evt.getActionCommand(); - //TraceManager.addDev("Command:" + command); - - if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_RUN_SIMU].getActionCommand())) { - runSimulation(); - //TraceManager.addDev("Start simulation!"); - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_RUN_X_COMMANDS].getActionCommand())) { - runXCommands(); - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_STOP_SIMU].getActionCommand())) { - stopSimulation(); - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_BACK_ONE].getActionCommand())) { - backwardOneTransaction(); - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_RESET_SIMU].getActionCommand())) { - resetSimulation(); - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_STOP_AND_CLOSE_ALL].getActionCommand())) { - close(); - return; - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_SAVE_TXT].getActionCommand())) { - actSaveTxt(); - return; - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_SAVE_SD_PNG].getActionCommand())) { - actSaveSDPNG(); - return; - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_SAVE_SVG].getActionCommand())) { - actSaveSvg(); - return; - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_ZOOM_IN].getActionCommand())) { - zoomIn(); - return; - - } else if (command.equals(actions[AvatarInteractiveSimulationActions.ACT_ZOOM_OUT].getActionCommand())) { - zoomOut(); - return; - - } else if (evt.getSource() == displayedTransactionsText) { - TraceManager.addDev("Entered text:" + displayedTransactionsText.getText()); - - } else if ((evt.getSource() == imposeRandom) || (evt.getSource() == updateRandom)) { - randomValue.setEnabled(imposeRandom.isSelected()); - if (ass != null) { - if (imposeRandom.isSelected()) { - int val; - try { - val = Integer.decode(randomValue.getText().trim()).intValue(); - } catch (Exception e) { - val = -1; - } - ass.forceRandom(val); - } else { - ass.forceRandom(-1); - } - } - } else if (evt.getSource() == comboFIFOs) { - updateAsynchronousChannels(); - setDeleteUpDown(); - } else if (evt.getSource() == delete) { - deleteAsyncMsg(); - return; - } else if (evt.getSource() == up) { - TraceManager.addDev("Source = up"); - upAsyncMsg(); - } else if (evt.getSource() == down) { - TraceManager.addDev("Source = up"); - downAsyncMsg(); - } - - // Check for source of jcheckbox - int index = 0; - for(JCheckBox jcb: displayedBlocks) { - if (evt.getSource() == jcb) { - ass.getSimulationBlocks().get(index).selected = jcb.isSelected(); - TraceManager.addDev("Block " + ass.getSimulationBlocks().get(index) + " is now " + ass.getSimulationBlocks().get(index).selected); - ass.computeSelectedSimulationBlocks(); - sdpanel.repaint(); - return; - } - index ++; - } - } - - public void error(String error) { - jta.append("error: " + error + "\n"); - } - - public void valueChanged(ListSelectionEvent e) { - if (e.getSource() == asyncmsgs) { - setDeleteUpDown(); - return; - } - - int index = listPendingTransactions.getSelectedIndex(); - //TraceManager.addDev("Selected index = " + index); - if (index > -1) { - try { - AvatarSimulationPendingTransaction aspt = (AvatarSimulationPendingTransaction)(listPendingTransactions.getSelectedValue()); - selectedComponentForTransaction1 = (TGComponent)(aspt.elementToExecute.getReferenceObject()); - selectedComponentForTransaction2 = null; - if ((selectedComponentForTransaction1 == null) && (aspt.linkedTransaction != null)) { - //TraceManager.addDev("Adding reference object: " + aspt.linkedTransaction.elementToExecute.getReferenceObject()); - selectedComponentForTransaction1 = (TGComponent)(aspt.linkedTransaction.elementToExecute.getReferenceObject()); - selectedComponentForTransaction2 = null; - } else if (aspt.linkedTransaction != null) { - selectedComponentForTransaction2 = (TGComponent)(aspt.linkedTransaction.elementToExecute.getReferenceObject()); - } - if (!(busyMode == AvatarSpecificationSimulation.GATHER) && !(busyMode == AvatarSpecificationSimulation.EXECUTE)) { - ass.setIndexSelectedTransaction(listPendingTransactions.getSelectedIndex()); - } - if (animate.isSelected()) { - if (openDiagram.isSelected()) { - if (aspt.asb != null) { - previousBlock = aspt.asb; - mgui.openAVATARSMD(previousBlock.getName()); - } - } else { - mgui.refreshCurrentPanel(); - } - } - } catch (Exception ex){ - TraceManager.addDev("Exception selected component"); - selectedComponentForTransaction1 = null; - selectedComponentForTransaction2 = null; - if (openDiagram.isSelected()) { - if ((previousBlock != null) && (animate.isSelected())){ - mgui.openAVATARSMD(previousBlock.getName()); - } else { - mgui.refreshCurrentPanel(); - } - } else { - mgui.refreshCurrentPanel(); - } - } - } else { - selectedComponentForTransaction1 = null; - selectedComponentForTransaction2 = null; - if ((previousBlock != null) && (animate.isSelected())) { - if (openDiagram.isSelected()) { - mgui.openAVATARSMD(previousBlock.getName()); - } else { - mgui.refreshCurrentPanel(); - } - } else { - mgui.refreshCurrentPanel(); - } - } - - } - - - public void itemStateChanged(ItemEvent e) { - if (e.getSource() == animate) { - //TraceManager.addDev("Animate is ... " + animate.isSelected()); - animateDiagrams(); - diploids.setEnabled(animate.isSelected()); - animateWithInfo.setEnabled(animate.isSelected()); - openDiagram.setEnabled(animate.isSelected()); - } else if (e.getSource() == diploids) { - mgui.setAVATARIDs(diploids.isSelected()); - if (sdpanel != null) { - sdpanel.setShowIDs(diploids.isSelected()); - } - } else if (e.getSource() == executeEmptyTransition) { - ass.setExecuteEmptyTransition(executeEmptyTransition.isSelected()); - } else if (e.getSource() == executeStateEntering) { - ass.setExecuteStateEntering(executeStateEntering.isSelected()); - } else if (e.getSource() == traceInSD) { - if (sdpanel != null) { - sdpanel.setTrace(traceInSD.isSelected()); - sdpanel.repaint(); - } - - } else if (e.getSource() == hidden) { - if (sdpanel != null) { - sdpanel.setShowHiddenStates(hidden.isSelected()); - } - } - - } - - public void windowClosing(WindowEvent e) { - TraceManager.addDev("Windows closed!"); - close(); - } - - public void windowClosed(WindowEvent e) { - } - - public void windowOpened(WindowEvent e) { - } - - public void windowIconified(WindowEvent e) { - } - - public void windowDeiconified(WindowEvent e) { - } - - public void windowActivated(WindowEvent e) { - } - - public void windowDeactivated(WindowEvent e) { - } - -} // Class diff --git a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java index 21306248ba315d747788e2284cc42b638dd6dbfc..f5cb21a8f5a0fd92cf446268c715540ed5eccaf0 100644 --- a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java @@ -1,26 +1,26 @@ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * + * * ludovic.apvrille AT enst.fr - * + * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. - * + * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". - * + * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. - * + * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, @@ -31,14 +31,12 @@ * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. - * + * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ - - package ui.avatarsmd; import myutil.GraphicLib; @@ -51,23 +49,24 @@ import java.awt.geom.Point2D; import java.util.Vector; /** - * Class AvatarSMDConnector - * Basic connector with a full arrow at the end. Used in state machine - * Creation: 06/04/2010 - * @version 1.0 06/04/2010 - * @author Ludovic APVRILLE + * Class AvatarSMDConnector + * Basic connector with a full arrow at the end. Used in state machine + * Creation: 06/04/2010 + * + * @author Ludovic APVRILLE + * @version 1.0 06/04/2010 */ -public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints { +public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints { protected int arrowLength = 10; //protected AvatarSMDTransitionInfo myTransitionInfo; public AvatarSMDConnector(int _x, int _y, int _minX, int _minY, int _maxX, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp, TGConnectingPoint _p1, TGConnectingPoint _p2, Vector<Point> _listPoint) { - super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); + super(_x, _y, _minX, _minY, _maxX, _maxY, _pos, _father, _tdp, _p1, _p2, _listPoint); //nbInternalTGComponent = 1; //tgcomponent = new TGComponent[nbInternalTGComponent]; - - AvatarSMDTransitionInfo tgc = new AvatarSMDTransitionInfo((_p1.getX()+_p2.getX())/2, (_p1.getY()+_p2.getY())/2, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, this, _tdp); + + AvatarSMDTransitionInfo tgc = new AvatarSMDTransitionInfo((_p1.getX() + _p2.getX()) / 2, (_p1.getY() + _p2.getY()) / 2, tdp.getMinX(), tdp.getMaxX(), tdp.getMinY(), tdp.getMaxY(), false, this, _tdp); tgc.setValue(""); tgc.setName("List of all parameters of an Avatar SMD transition"); tgc.setMoveWithFather(false); @@ -111,20 +110,22 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints }*/ - public void setTransitionInfo(String guard, String action){ - AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0); - if (!guard.isEmpty()){ - tgc.setGuard(guard); - } - if (!action.isEmpty()){ - tgc.addAction(action); - } - } - public void setTransitionTime(String minDelay, String maxDelay, String minCompute, String maxCompute){ - AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0); - tgc.setTimes(minDelay, maxDelay, minCompute, maxCompute); - } - protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){ + public void setTransitionInfo(String guard, String action) { + AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0); + if (!guard.isEmpty()) { + tgc.setGuard(guard); + } + if (!action.isEmpty()) { + tgc.addAction(action); + } + } + + public void setTransitionTime(String minDelay, String maxDelay, String minCompute, String maxCompute) { + AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0); + tgc.setTimes(minDelay, maxDelay, minCompute, maxCompute); + } + + protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2) { if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) { g.drawLine(x1, y1, x2, y2); } else { @@ -133,10 +134,10 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints } public boolean editOndoubleClick(JFrame frame) { - AvatarSMDTransitionInfo info = getAvatarSMDTransitionInfo(); - if (info == null) { - return false; - } + AvatarSMDTransitionInfo info = getAvatarSMDTransitionInfo(); + if (info == null) { + return false; + } return info.editOndoubleClick(frame); } @@ -145,9 +146,9 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints } public AvatarSMDTransitionInfo getAvatarSMDTransitionInfo() { - for(int i=0; i<tgcomponent.length; i++) { + for (int i = 0; i < tgcomponent.length; i++) { if (tgcomponent[i] instanceof AvatarSMDTransitionInfo) { - return (AvatarSMDTransitionInfo)(tgcomponent[i]); + return (AvatarSMDTransitionInfo) (tgcomponent[i]); } } return null; @@ -201,6 +202,12 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints return getAvatarSMDTransitionInfo().getComputeMaxDelay(); } + public String getProbability() { + return getAvatarSMDTransitionInfo().getProbability(); + } + + + public String getFilesToInclude() { return getAvatarSMDTransitionInfo().getFilesToInclude(); diff --git a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java index c01ae1c5743d19ecbb8089fece4e425f62fb5ea0..8e4ea4b0b010723e2a3ba0504ba8cd9aa94ca959 100755 --- a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java +++ b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java @@ -1,26 +1,26 @@ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * + * * ludovic.apvrille AT enst.fr - * + * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. - * + * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". - * + * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. - * + * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, @@ -31,14 +31,12 @@ * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. - * + * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ - - package ui.avatarsmd; import myutil.Conversion; @@ -58,17 +56,18 @@ import java.util.Vector; //import java.awt.geom.*; /** - * Class AvatarSMDTransitionInfo - * Internal component that represents a set of parameter for a transition - * e.g., guard, after, compute, set of actions - * Creation: 12/04/2010 - * @version 1.0 12/04/2010 - * @author Ludovic APVRILLE + * Class AvatarSMDTransitionInfo + * Internal component that represents a set of parameter for a transition + * e.g., guard, after, compute, set of actions + * Creation: 12/04/2010 + * + * @author Ludovic APVRILLE + * @version 1.0 12/04/2010 */ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { // private static String FILE_INFO = "(user files specified)"; - // private static String CODE_INFO = "(user code specified)"; + // private static String CODE_INFO = "(user code specified)"; protected String guard; @@ -76,10 +75,11 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { protected String afterMax; protected String computeMin; protected String computeMax; + protected String probability = ""; protected Vector<String> listOfActions; - protected String [] filesToInclude; - protected String [] codeToInclude; + protected String[] filesToInclude; + protected String[] codeToInclude; protected int minWidth = 10; protected int minHeight = 15; @@ -88,7 +88,7 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { protected String defaultValue; public AvatarSMDTransitionInfo(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp) { - super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); + super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp); moveable = true; editable = true; @@ -118,18 +118,25 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { public Vector<String> getListOfActions() { return listOfActions; } - public void setGuard(String s){ - guard=s; + + public void setGuard(String s) { + guard = s; } - public void addAction(String s){ - listOfActions.add(s); + + public void setProbability(String s) { + probability = s; } + + public void addAction(String s) { + listOfActions.add(s); + } + public void internalDrawing(Graphics g) { int step = 0; String s; - h = g.getFontMetrics().getHeight(); - for (int j=0; j<nbConnectingPoint; j++) { - connectingPoint[j].setCdY(-h+1); + h = g.getFontMetrics().getHeight(); + for (int j = 0; j < nbConnectingPoint; j++) { + connectingPoint[j].setCdY(-h + 1); } ColorManager.setColor(g, getState(), 0); @@ -139,9 +146,9 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { g.setColor(ColorManager.AVATAR_GUARD); - if (tdp.isDrawingMain()) { - width = minWidth; - } + if (tdp.isDrawingMain()) { + width = minWidth; + } if (guard.length() > 0) { if (guard.replaceAll("\\s+", "").compareTo("[]") != 0) { @@ -201,9 +208,20 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { } } + if ((probability != null) && (probability.length() > 0)) { + s = "p=" + probability; + g.drawString(s, x, y + step); + atLeastOneThing = true; + if (tdp.isDrawingMain()) { + width = Math.max(g.getFontMetrics().stringWidth(s), width); + width = Math.max(minWidth, width); + } + step += inc; + } + g.setColor(ColorManager.AVATAR_ACTION); - for(int i=0; i<listOfActions.size(); i++) { + for (int i = 0; i < listOfActions.size(); i++) { s = listOfActions.get(i); if (s.length() > 0) { g.drawString(s, x, y + step); @@ -239,24 +257,21 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { }*/ - - if (tdp.isDrawingMain()) { height = Math.max(step, minHeight); } if (!atLeastOneThing) { - width=minWidth; + width = minWidth; } ColorManager.setColor(g, state, 0); - if ((getState() == TGState.POINTER_ON_ME) || (getState() == TGState.POINTED)|| (getState() == TGState.MOVING)){ - g.drawRoundRect(x-1, y-h+2, width+2, height+2, 5, 5); + if ((getState() == TGState.POINTER_ON_ME) || (getState() == TGState.POINTED) || (getState() == TGState.MOVING)) { + g.drawRoundRect(x - 1, y - h + 2, width + 2, height + 2, 5, 5); } } - public TGComponent isOnMe(int _x, int _y) { if (GraphicLib.isInRectangle(_x, _y, x, y - h + 2, width, height)) { return this; @@ -271,10 +286,10 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { public boolean editOndoubleClick(JFrame frame) { LinkedList<TAttribute> attributes = tdp.getMGUI().getAllAttributes(); LinkedList<AvatarMethod> methods = tdp.getMGUI().getAllMethods(); - JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude); - // jdat.setSize(600, 550); + JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude, probability); + // jdat.setSize(600, 550); GraphicLib.centerOnParent(jdat, 600, 550); - jdat.setVisible( true ); // blocked until dialog has been closed + jdat.setVisible(true); // blocked until dialog has been closed if (jdat.hasBeenCancelled()) { @@ -293,7 +308,8 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { computeMin = jdat.getComputeMin().trim(); computeMax = jdat.getComputeMax().trim(); filesToInclude = jdat.getFilesToInclude(); - codeToInclude = jdat.getCodeToInclude(); + codeToInclude = jdat.getCodeToInclude(); + probability = jdat.getProbability(); return true; } @@ -319,14 +335,18 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { sb.append(GTURTLEModeling.transformString(computeMax)); sb.append("\" />\n"); - for(int i=0; i<listOfActions.size(); i++) { + sb.append("<probability value=\""); + sb.append(GTURTLEModeling.transformString(probability)); + sb.append("\" />\n"); + + for (int i = 0; i < listOfActions.size(); i++) { sb.append("<actions value=\""); sb.append(GTURTLEModeling.transformString(listOfActions.get(i))); sb.append("\" />\n"); } if (filesToInclude != null) { - for(int i=0; i<filesToInclude.length; i++) { + for (int i = 0; i < filesToInclude.length; i++) { sb.append("<filesToIncludeLine value=\""); sb.append(GTURTLEModeling.transformString(filesToInclude[i])); sb.append("\" />\n"); @@ -334,7 +354,7 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { } if (codeToInclude != null) { - for(int i=0; i<codeToInclude.length; i++) { + for (int i = 0; i < codeToInclude.length; i++) { sb.append("<codeToIncludeLine value=\""); sb.append(GTURTLEModeling.transformString(codeToInclude[i])); sb.append("\" />\n"); @@ -346,7 +366,7 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { } @Override - public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{ + public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException { //System.out.println("*** load extra synchro *** " + getId()); String tmpFilesToInclude = ""; String tmpCodeToInclude = ""; @@ -358,18 +378,18 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { Node n1, n2; Element elt; String s; - for(int i=0; i<nl.getLength(); i++) { + for (int i = 0; i < nl.getLength(); i++) { n1 = nl.item(i); //System.out.println(n1); if (n1.getNodeType() == Node.ELEMENT_NODE) { nli = n1.getChildNodes(); // Issue #17 copy-paste error on j index - for(int j=0; j<nli.getLength(); j++) { + for (int j = 0; j < nli.getLength(); j++) { n2 = nli.item(j); //System.out.println(n2); if (n2.getNodeType() == Node.ELEMENT_NODE) { - elt = (Element)n2; + elt = (Element) n2; if (elt.getTagName().equals("guard")) { s = elt.getAttribute("value"); if (s != null) { @@ -400,6 +420,12 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { computeMax = s; } } + if (elt.getTagName().equals("probability")) { + s = elt.getAttribute("value"); + if (s != null) { + probability = s; + } + } if (elt.getTagName().equals("actions")) { s = elt.getAttribute("value"); if (s != null) { @@ -465,12 +491,17 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { public String getComputeMaxDelay() { return computeMax; } - public void setTimes(String minDelay, String maxDelay, String minCompute, String maxCompute){ - computeMin= minCompute; - computeMax = maxCompute; - afterMin= minDelay; - afterMax=maxDelay; - } + + public String getProbability() { + return probability; + } + + public void setTimes(String minDelay, String maxDelay, String minCompute, String maxCompute) { + computeMin = minCompute; + computeMax = maxCompute; + afterMin = minDelay; + afterMax = maxDelay; + } public Vector<String> getActions() { return listOfActions; @@ -489,17 +520,18 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent { return null; } String ret = ""; - for(int i=0; i<filesToInclude.length; i++) { + for (int i = 0; i < filesToInclude.length; i++) { ret += filesToInclude[i] + "\n"; } return ret; } + public String getCodeToInclude() { if (codeToInclude == null) { return null; } String ret = ""; - for(int i=0; i<codeToInclude.length; i++) { + for (int i = 0; i < codeToInclude.length; i++) { ret += codeToInclude[i] + "\n"; } return ret; diff --git a/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java b/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java index fea1d4ee988e271b119a9d2d5a45e28cba7a522d..287d223eb558b0313c299e08a31ee116e913c53e 100644 --- a/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java +++ b/src/main/java/ui/networkmodelloader/JDialogLoadingNetworkModel.java @@ -249,6 +249,8 @@ public class JDialogLoadingNetworkModel extends javax.swing.JFrame implements Ac // Loading main file describing models, giving information on this, and filling the array of models // Accessing the main file try { + + int delay = 10000; //milliseconds ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent evt) { diff --git a/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java b/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java index 8605d135659ea48e5504456a9b382549a4ca11e0..ffc66bcc07c445fdb91aa3eeed555f9c4fe35389 100755 --- a/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java +++ b/src/main/java/ui/tmlcompd/TMLCPrimitivePort.java @@ -601,6 +601,10 @@ public abstract class TMLCPrimitivePort extends TGCScalableWithInternalComponent } } checkAuth=jda.checkAuth; + if (checkStrongAuthStatus<2){ + checkStrongAuthStatus=1; + checkWeakAuthStatus=1; + } for(int i=0; i<nbMaxAttribute; i++) { //TraceManager.addDev("Getting string type: " + jda.getStringType(i)); list[i].setType(jda.getStringType(i)); diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java index 02f2ee106432745858b19e67b32bb78d37967c4c..c4d254ac0a799f34e479238c0ef7a27431f9fbcd 100755 --- a/src/main/java/ui/util/DefaultText.java +++ b/src/main/java/ui/util/DefaultText.java @@ -50,8 +50,8 @@ package ui.util; */ public class DefaultText { - public static String BUILD = "12561"; - public static String DATE = "2018/02/15 02:01:35 CET"; + public static String BUILD = "12563"; + public static String DATE = "2018/02/16 02:01:43 CET"; public static StringBuffer sbAbout = makeAbout(); diff --git a/src/main/java/ui/window/JDialogAvatarExecutableCodeGeneration.java b/src/main/java/ui/window/JDialogAvatarExecutableCodeGeneration.java index e359d086bd4130fd2fef8082336361a9e7995579..3cde2ea73d5600f2dcedb1a08621277f20d65a82 100644 --- a/src/main/java/ui/window/JDialogAvatarExecutableCodeGeneration.java +++ b/src/main/java/ui/window/JDialogAvatarExecutableCodeGeneration.java @@ -1,26 +1,26 @@ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * + * * ludovic.apvrille AT enst.fr - * + * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. - * + * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". - * + * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. - * + * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, @@ -31,14 +31,12 @@ * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. - * + * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ - - package ui.window; import avatartranslator.AvatarSpecification; @@ -62,11 +60,12 @@ import java.io.File; * Class JDialogAvatarExecutableCodeGeneration * Dialog for managing the generation and compilation of AVATAR executable code * Creation: 29/03/2011 - * @version 1.1 29/03/2011 + * * @author Ludovic APVRILLE * @author (added deployment diagrams) Julien Henon, Daniela GENIUS + * @version 1.1 29/03/2011 */ -public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame implements ActionListener, Runnable, MasterProcessInterface { +public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame implements ActionListener, Runnable, MasterProcessInterface { private static String[] unitTab = {"usec", "msec", "sec"}; @@ -145,7 +144,9 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im protected RshClient rshc; - /** Creates new form */ + /** + * Creates new form + */ public JDialogAvatarExecutableCodeGeneration(Frame _f, MainGUI _mgui, String title, String _hostExecute, String _pathCode, String _pathCompiler, String _pathExecute, String _pathCompilerSoclib, String _pathExecuteSoclib, String _pathSoclibTraceFile) { @@ -156,7 +157,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im pathCode = _pathCode; - + pathCompiler = _pathCompiler; pathExecute = _pathExecute; @@ -169,7 +170,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im pathExecuteSoclib = _pathExecuteSoclib; } - if (pathSoclibTraceFile == null){ + if (pathSoclibTraceFile == null) { pathSoclibTraceFile = _pathSoclibTraceFile; } @@ -196,9 +197,9 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im protected void initComponents() { - if (PluginManager.pluginManager.getPluginAvatarCodeGenerator() != null) { - codes[0] = "AVATAR CPOSIX (with Plugin)"; - } + if (PluginManager.pluginManager.getPluginAvatarCodeGenerator() != null) { + codes[0] = "AVATAR CPOSIX (with Plugin)"; + } Container c = getContentPane(); setFont(new Font("Helvetica", Font.PLAIN, 14)); @@ -308,7 +309,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im c02.fill = GridBagConstraints.BOTH; c02.gridheight = 1; - compilegroup = new ButtonGroup(); + compilegroup = new ButtonGroup(); compile = new JRadioButton(textSysC2, false); jp02.add(compile, c02); @@ -417,7 +418,6 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im jp1.add("Results", jp04); - c.add(jp1, BorderLayout.NORTH); jta = new ScrolledJTextArea(); @@ -427,7 +427,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im jta.append("Select options and then, click on 'start' to launch code generation / compilation / execution\n"); Font f = new Font("Courrier", Font.BOLD, 12); jta.setFont(f); - textAreaWriter = new JTextAreaWriter( jta ); + textAreaWriter = new JTextAreaWriter(jta); jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); @@ -454,11 +454,11 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im } - public void actionPerformed(ActionEvent evt) { + public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); // Compare the action command to the known actions. - if (command.equals("Start")) { + if (command.equals("Start")) { startProcess(); } else if (command.equals("Stop")) { stopProcess(); @@ -470,7 +470,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im selectedUnit = units.getSelectedIndex(); } else if (evt.getSource() == showSimulationTrace) { showSimulationTrace(); - } else if ((evt.getSource() == exe) || (evt.getSource() == exetrace)|| (evt.getSource() == exesoclib)) { + } else if ((evt.getSource() == exe) || (evt.getSource() == exetrace) || (evt.getSource() == exesoclib)) { makeSelectionExecute(); } else if ((evt.getSource() == compile) || (evt.getSource() == compilesoclib)) { makeSelectionCompile(); @@ -542,7 +542,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im } rshc = null; - mode = STOPPED; + mode = STOPPED; setButtons(); go = false; } @@ -578,14 +578,14 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im if (removeCFiles.isSelected()) { jta.append("Removing all .h files\n"); - list = FileUtils.deleteFiles(code1.getText() + AVATAR2CPOSIX.getGeneratedPath(), ".h"); + list = FileUtils.deleteFiles(code1.getText() + AVATAR2CPOSIX.getGeneratedPath(), ".h"); if (list.length() == 0) { jta.append("No files were deleted\n"); } else { jta.append("Files deleted:\n" + list + "\n"); } jta.append("Removing all .c files\n"); - list = FileUtils.deleteFiles(code1.getText() + AVATAR2CPOSIX.getGeneratedPath(), ".c"); + list = FileUtils.deleteFiles(code1.getText() + AVATAR2CPOSIX.getGeneratedPath(), ".c"); if (list.length() == 0) { jta.append("No files were deleted\n"); } else { @@ -595,7 +595,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im if (removeXFiles.isSelected()) { jta.append("Removing all .x files\n"); - list = FileUtils.deleteFiles(code1.getText() , ".x"); + list = FileUtils.deleteFiles(code1.getText(), ".x"); if (list.length() == 0) { jta.append("No files were deleted\n"); } else { @@ -607,7 +607,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im if (removeOFiles.isSelected()) { String pathTmp = code1.getText() + "/lib/generated_src/"; jta.append("Removing all .o files in " + pathTmp + "\n"); - list = FileUtils.deleteFiles(pathTmp , ".o"); + list = FileUtils.deleteFiles(pathTmp, ".o"); if (list.length() == 0) { jta.append("No files were deleted\n"); } else { @@ -616,7 +616,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im pathTmp = code1.getText() + "/lib/src/"; jta.append("Removing all .o files in " + pathTmp + "\n"); - list = FileUtils.deleteFiles(pathTmp , ".o"); + list = FileUtils.deleteFiles(pathTmp, ".o"); if (list.length() == 0) { jta.append("No files were deleted\n"); @@ -635,12 +635,12 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im if (avspec == null) { jta.append("Error: No AVATAR specification\n"); } else { - if (PluginManager.pluginManager.getPluginAvatarCodeGenerator() != null) { - TraceManager.addDev("Using customize Avatar code generator"); - } - + if (PluginManager.pluginManager.getPluginAvatarCodeGenerator() != null) { + TraceManager.addDev("Using customize Avatar code generator"); + } + AVATAR2CPOSIX avatartocposix = new AVATAR2CPOSIX(avspec, PluginManager.pluginManager.getPluginAvatarCodeGenerator()); - + avatartocposix.includeUserCode(putUserCode.isSelected()); avatartocposix.setTimeUnit(selectedUnit); avatartocposix.generateCPOSIX(debugmode.isSelected(), tracemode.isSelected()); @@ -651,11 +651,12 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im jta.append("Saving code in files\n"); pathCode = code1.getText(); //gene.avatartocposix.saveInFiles(pathCode);//DG 27.11. + TraceManager.addDev("Generating files in " + pathCode); avatartocposix.saveInFiles(pathCode); //tml2systc.saveFile(pathCode, "appmodel"); jta.append("Code saved\n"); } catch (Exception e) { - jta.append("Could not generate files\n"); + jta.append("Could not generate files:\n" + e.getMessage()); } } } @@ -684,11 +685,11 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im jta.append("Compilation done\n"); } catch (LauncherException le) { jta.append("Error: " + le.getMessage() + "\n"); - mode = STOPPED; + mode = STOPPED; setButtons(); return; } catch (Exception e) { - mode = STOPPED; + mode = STOPPED; setButtons(); return; } @@ -717,11 +718,11 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im jta.append("Execution done\n"); } catch (LauncherException le) { jta.append("Error: " + le.getMessage() + "\n"); - mode = STOPPED; + mode = STOPPED; setButtons(); return; } catch (Exception e) { - mode = STOPPED; + mode = STOPPED; setButtons(); return; } @@ -898,7 +899,7 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im protected void processCmd(String cmd, JTextArea _jta) throws LauncherException { rshc.setCmd(cmd); rshc.sendExecuteCommandRequest(); - rshc.writeCommandMessages( textAreaWriter ); + rshc.writeCommandMessages(textAreaWriter); return; } @@ -908,28 +909,28 @@ public class JDialogAvatarExecutableCodeGeneration extends javax.swing.JFrame im } protected void setButtons() { - switch(mode) { - case NOT_STARTED: - start.setEnabled(true); - stop.setEnabled(false); - close.setEnabled(true); - //setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - getGlassPane().setVisible(false); - break; - case STARTED: - start.setEnabled(false); - stop.setEnabled(true); - close.setEnabled(false); - getGlassPane().setVisible(true); - //setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - break; - case STOPPED: - default: - start.setEnabled(false); - stop.setEnabled(false); - close.setEnabled(true); - getGlassPane().setVisible(false); - break; + switch (mode) { + case NOT_STARTED: + start.setEnabled(true); + stop.setEnabled(false); + close.setEnabled(true); + //setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + getGlassPane().setVisible(false); + break; + case STARTED: + start.setEnabled(false); + stop.setEnabled(true); + close.setEnabled(false); + getGlassPane().setVisible(true); + //setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + break; + case STOPPED: + default: + start.setEnabled(false); + stop.setEnabled(false); + close.setEnabled(true); + getGlassPane().setVisible(false); + break; } } diff --git a/src/main/java/ui/window/JDialogAvatarSignal.java b/src/main/java/ui/window/JDialogAvatarSignal.java index f4c3e1a4a09c67567a1ec5f9b9d402a34bb5f4e6..1a033232c7e2e160721c06d604017dad59678427 100755 --- a/src/main/java/ui/window/JDialogAvatarSignal.java +++ b/src/main/java/ui/window/JDialogAvatarSignal.java @@ -117,13 +117,13 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener private void initComponents() { Container c = getContentPane(); - GridBagLayout gridbag0 = new GridBagLayout(); + //GridBagLayout gridbag0 = new GridBagLayout(); GridBagLayout gridbag1 = new GridBagLayout(); - GridBagConstraints c0 = new GridBagConstraints(); + //GridBagConstraints c0 = new GridBagConstraints(); GridBagConstraints c1 = new GridBagConstraints(); setFont(new Font("Helvetica", Font.PLAIN, 14)); - c.setLayout(gridbag0); + c.setLayout(new BorderLayout()); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); @@ -132,7 +132,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener panel1.setBorder(new javax.swing.border.TitledBorder("Signals")); - panel1.setPreferredSize(new Dimension(500, 250)); + //panel1.setPreferredSize(new Dimension(500, 250)); // first line panel1 c1.weighty = 1.0; @@ -183,22 +183,22 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener // main panel; - c0.gridwidth = 1; + /*c0.gridwidth = 1; c0.gridheight = 10; c0.weighty = 1.0; c0.weightx = 1.0; - c0.gridwidth = GridBagConstraints.REMAINDER; //end row + c0.gridwidth = GridBagConstraints.REMAINDER; //end row*/ - c.add(panel1, c0); + c.add(panel1, BorderLayout.CENTER); - c0.gridwidth = 1; - c0.gridheight = 1; - c0.fill = GridBagConstraints.HORIZONTAL; + //c0.gridwidth = 1; + //c0.gridheight = 1; + //c0.fill = GridBagConstraints.HORIZONTAL; - initButtons(c0, c, this); + initButtons(c, this); } public void actionPerformed(ActionEvent evt) { diff --git a/src/main/java/ui/window/JDialogAvatarTransition.java b/src/main/java/ui/window/JDialogAvatarTransition.java index aa3fc6e0681e5cbf82964cfa1db56fed825a5dba..90022336566089301d2562482c15fa95d44d10b9 100755 --- a/src/main/java/ui/window/JDialogAvatarTransition.java +++ b/src/main/java/ui/window/JDialogAvatarTransition.java @@ -64,7 +64,7 @@ import java.util.Vector; public class JDialogAvatarTransition extends JDialogBase implements ActionListener { private Vector<String> actions; - private String guard, afterMin, afterMax, computeMin, computeMax; + private String guard, afterMin, afterMax, computeMin, computeMax, probability; private LinkedList<TAttribute> myAttributes; private LinkedList<AvatarMethod> myMethods; private Vector<String> allElements, insertElements; @@ -78,7 +78,7 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen private JPanel panel2; // Panel1 - private JTextField guardT, afterMinT, afterMaxT, computeMinT, computeMaxT; + private JTextField guardT, afterMinT, afterMaxT, computeMinT, computeMaxT, probabilityT; private JTextArea actionsT; private JComboBox<String> elements; private JButton insertElement; @@ -89,7 +89,10 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen /** Creates new form */ // arrayDelay: [0] -> minDelay ; [1] -> maxDelay - public JDialogAvatarTransition(Frame _f, String _title, String _guard, String _afterMin, String _afterMax, String _computeMin, String _computeMax, Vector<String> _actions, LinkedList<TAttribute> _myAttributes, LinkedList<AvatarMethod> _myMethods, String[] _filesToInclude, String[] _codeToInclude) { + public JDialogAvatarTransition(Frame _f, String _title, String _guard, String _afterMin, String _afterMax, + String _computeMin, String _computeMax, Vector<String> _actions, + LinkedList<TAttribute> _myAttributes, LinkedList<AvatarMethod> _myMethods, + String[] _filesToInclude, String[] _codeToInclude, String _probability) { super(_f, _title, true); @@ -99,6 +102,7 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen computeMin = _computeMin; computeMax = _computeMax; actions = _actions; + probability = _probability; myAttributes = _myAttributes; myMethods = _myMethods; @@ -185,7 +189,7 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen panel1.add(new JLabel(")"), c1); // Compute - c1.gridwidth = 1; + /*c1.gridwidth = 1; c1.gridheight = 1; c1.weighty = 1.0; c1.weightx = 1.0; @@ -196,8 +200,19 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen computeMaxT = new JTextField(computeMax, 10); panel1.add(computeMaxT, c1); c1.gridwidth = GridBagConstraints.REMAINDER; //end row - panel1.add(new JLabel(")"), c1); - + panel1.add(new JLabel(")"), c1);*/ + + // probability + c1.weighty = 1.0; + c1.weightx = 1.0; + c1.gridwidth = 1; + c1.gridheight = 1; + c1.fill = GridBagConstraints.BOTH; + c1.gridheight = 1; + panel1.add(new JLabel("probability in [0...1] = "), c1); + c1.gridwidth = GridBagConstraints.REMAINDER; //end row + probabilityT = new JTextField(probability); + panel1.add(probabilityT, c1); // actions @@ -359,13 +374,24 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen } public String getComputeMin() { - return computeMinT.getText(); + if (computeMinT == null) { + return ""; + } + + return computeMinT.getText(); } public String getComputeMax() { - return computeMaxT.getText(); + if (computeMaxT == null) { + return ""; + } + return computeMaxT.getText(); } + public String getProbability() { + return probabilityT.getText(); + } + public boolean hasBeenCancelled() { return cancelled; } diff --git a/src/main/java/ui/window/JDialogAvatarddExecutableCodeGeneration.java b/src/main/java/ui/window/JDialogAvatarddExecutableCodeGeneration.java index 9698af393903271af56d8d5bc9be6585af618471..db7714e04fefa01158d07a7d3e0ed8f829fc56ae 100755 --- a/src/main/java/ui/window/JDialogAvatarddExecutableCodeGeneration.java +++ b/src/main/java/ui/window/JDialogAvatarddExecutableCodeGeneration.java @@ -1,26 +1,26 @@ /* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille - * + * * ludovic.apvrille AT enst.fr - * + * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. - * + * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". - * + * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. - * + * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, @@ -31,14 +31,12 @@ * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. - * + * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ - - package ui.window; import avatartranslator.AvatarSpecification; @@ -67,12 +65,12 @@ import java.io.Writer; * Class JDialogAvatarddExecutableCodeGeneration * Dialog for managing the generation and compilation of AVATAR executable code * Creation: june 2014 - * @version 1.1 + * * @author Ludovic APVRILLE - * @version 2.0 (march 2016) * @author (adapted to code generation from deployment diagrams) Julien Henon, Daniela GENIUS 2015-2016 + * @version 2.0 (march 2016) */ -public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame implements ActionListener, Runnable, MasterProcessInterface { +public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame implements ActionListener, Runnable, MasterProcessInterface { private static String[] unitTab = {"usec", "msec", "sec"}; @@ -80,7 +78,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame protected MainGUI mgui; private String textSysC1 = "Base directory of code generation:"; - private String textSysC2 = "Compile soclib executable with"; + private String textSysC2 = "Compile soclib executable with"; //private String textSysC3 = "Run code and trace traffic on interconnect :"; private String textSysC4 = "Run code in soclib / mutekh:"; private String textSysC5 = "Show AVATAR trace from file w/o hardware:"; @@ -88,14 +86,14 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame private String textSysC7 = "Base directory of topcell generation:"; //private static String unitCycle = "1"; - + private static String[] codes = {"AVATAR SOCLIB"}; - + private static int selectedRun = 1; private static int selectedCompile = 0; private static int selectedViewTrace = 0; private static boolean static_putUserCode = true; - + protected static String pathCode; protected static String pathSoclibTraceFile; protected static String pathCompileMPSoC; @@ -108,7 +106,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame private static - int mode; + int mode; //components protected JTextArea jta; @@ -124,7 +122,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame protected JScrollPane jsp; protected JCheckBox removeCFiles, removeXFiles, debugmode, tracemode, optimizemode, putUserCode; protected JComboBox<String> versionCodeGenerator, units; - protected JButton showSimulationTrace,showOverflowStatus; + protected JButton showSimulationTrace, showOverflowStatus; private static int selectedUnit = 2; private static boolean removeCFilesValue = true; @@ -138,28 +136,31 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame private boolean hasError = false; protected boolean startProcess = false; - // private AvatarRelation FIFO; + // private AvatarRelation FIFO; private String hostExecute; protected RshClient rshc; - /** Creates new form */ + /** + * Creates new form + */ - public JDialogAvatarddExecutableCodeGeneration(Frame _f, MainGUI _mgui, String title, - String _hostExecute, - String _pathCode, - String _pathCompileMPSoC, - String _pathExecuteMPSoC) { + public JDialogAvatarddExecutableCodeGeneration(Frame _f, MainGUI _mgui, String title, + String _hostExecute, + String _pathCode, + String _pathCompileMPSoC, + String _pathExecuteMPSoC) { - super(title);; + super(title); + ; f = _f; mgui = _mgui; if (pathCode == null) { pathCode = _pathCode; - } - + } + if (pathCompileMPSoC == null) { pathCompileMPSoC = _pathCompileMPSoC; } @@ -235,14 +236,14 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame code1 = new JTextField(pathCode, 100); jp01.add(code1, c01); - + gen = new JLabel(textSysC7); //genJava.addActionListener(this); jp01.add(gen, c01); - code2 = new JTextField(pathCode, 100); + code2 = new JTextField(pathCode, 100); jp01.add(code2, c01); - + jp01.add(new JLabel(" "), c01); c01.gridwidth = GridBagConstraints.REMAINDER; //end row @@ -280,10 +281,10 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame jp01.add(new JLabel("Code generator used:"), c01); versionCodeGenerator = new JComboBox<String>(codes); - // versionCodeGenerator.setSelectedIndex(selectedItem); + // versionCodeGenerator.setSelectedIndex(selectedItem); versionCodeGenerator.addActionListener(this); jp01.add(versionCodeGenerator, c01); - + jp01.add(new JLabel(" "), c01); jp1.add("Generate code", jp01); @@ -295,7 +296,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame c02.fill = GridBagConstraints.BOTH; c02.gridheight = 1; - compilegroup = new ButtonGroup(); + compilegroup = new ButtonGroup(); compilesoclib = new JRadioButton(textSysC2, false); compilesoclib.addActionListener(this); @@ -317,7 +318,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame c03.fill = GridBagConstraints.BOTH; c03.gridheight = 1; - exegroup = new ButtonGroup(); + exegroup = new ButtonGroup(); /*exetrace = new JRadioButton(textSysC3, false); exetrace.addActionListener(this); @@ -335,7 +336,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame //exe.setSelected(selectedRun == 0); //exetrace.setSelected(selectedRun == 1); - exesoclib.setSelected(selectedRun == 2); + exesoclib.setSelected(selectedRun == 2); jp03.add(new JLabel(" "), c03); @@ -359,21 +360,21 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame viewtracesoclib = new JRadioButton(textSysC6, false); viewgroup.add(viewtracesoclib); viewtracesoclib.addActionListener(this); - jp04.add(viewtracesoclib, c04); - simulationsoclibTraceFile = new JTextField(pathSoclibTraceFile, 100); + jp04.add(viewtracesoclib, c04); + simulationsoclibTraceFile = new JTextField(pathSoclibTraceFile, 100); jp04.add(simulationsoclibTraceFile, c04); showSimulationTrace = new JButton("Show simulation trace"); showSimulationTrace.addActionListener(this); jp04.add(showSimulationTrace, c04); - //-------------Ajout C.Demarigny--------------- + //-------------Ajout C.Demarigny--------------- - showOverflowStatus = new JButton("Show overflow status"); + showOverflowStatus = new JButton("Show overflow status"); showOverflowStatus.addActionListener(this); jp04.add(showOverflowStatus, c04); - //----------------Fin ajout-------------------- + //----------------Fin ajout-------------------- viewtrace.setSelected(selectedViewTrace == 0); viewtracesoclib.setSelected(selectedViewTrace == 1); @@ -381,7 +382,6 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame jp1.add("Results", jp04); - c.add(jp1, BorderLayout.NORTH); jta = new ScrolledJTextArea(); @@ -416,34 +416,34 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame } - public void actionPerformed(ActionEvent evt) { + public void actionPerformed(ActionEvent evt) { String command = evt.getActionCommand(); // Compare the action command to the known actions. - if (command.equals("Start")) { + if (command.equals("Start")) { startProcess(); } else if (command.equals("Stop")) { stopProcess(); } else if (command.equals("Close")) { closeDialog(); } else if (evt.getSource() == versionCodeGenerator) { - // selectedItem = versionCodeGenerator.getSelectedIndex(); + // selectedItem = versionCodeGenerator.getSelectedIndex(); } else if (evt.getSource() == units) { selectedUnit = units.getSelectedIndex(); } else if (evt.getSource() == showSimulationTrace) { showSimulationTrace(); } //else if ((evt.getSource() == exe) || (evt.getSource() == exetrace)|| (evt.getSource() == exesoclib)) { - else if ((evt.getSource() == exetrace)|| (evt.getSource() == exesoclib)) { + else if ((evt.getSource() == exetrace) || (evt.getSource() == exesoclib)) { makeSelectionExecute(); - // } else if ((evt.getSource() == compile) || (evt.getSource() == compilesoclib)) { - } else if ( (evt.getSource() == compilesoclib)) { + // } else if ((evt.getSource() == compile) || (evt.getSource() == compilesoclib)) { + } else if ((evt.getSource() == compilesoclib)) { makeSelectionCompile(); } else if ((evt.getSource() == viewtrace) || (evt.getSource() == viewtracesoclib)) { makeSelectionViewTrace(); - } else if ((evt.getSource() == showOverflowStatus) ){ //ajout CD - showOverflowStatus(); - }//fin ajout CD - } + } else if ((evt.getSource() == showOverflowStatus)) { //ajout CD + showOverflowStatus(); + }//fin ajout CD + } public void closeDialog() { if (mode == STARTED) { @@ -459,21 +459,21 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame } public void makeSelectionExecute() { - - //if (exetrace.isSelected()) { - // selectedRun = 1; - //} else { - selectedRun = 2; - //} - - // exe2.setEnabled(selectedRun == 0); + + //if (exetrace.isSelected()) { + // selectedRun = 1; + //} else { + selectedRun = 2; + //} + + // exe2.setEnabled(selectedRun == 0); //exe3.setEnabled(selectedRun == 1); exe4.setEnabled(selectedRun == 2); } public void makeSelectionCompile() { - selectedCompile = 1; + selectedCompile = 1; compiler.setEnabled(selectedCompile == 1); } @@ -485,7 +485,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame selectedViewTrace = 1; } simulationTraceFile.setEnabled(selectedViewTrace == 0); - // simulationsoclibTraceFile.setEnabled(selectedViewTrace == 1); + // simulationsoclibTraceFile.setEnabled(selectedViewTrace == 1); } public void stopProcess() { @@ -495,7 +495,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame } rshc = null; - mode = STOPPED; + mode = STOPPED; setButtons(); go = false; } @@ -518,199 +518,198 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame public void run() { String cmd; String list;//, data; - // int cycle = 0; + // int cycle = 0; hasError = false; - try { - - - - if (jp1.getSelectedIndex() == 0) { - jta.append("Generating executable code (SOCLIB version)\n"); - //selectedUnit = 1; - - ADDDiagramPanel deploymentDiagramPanel = mgui.getFirstAvatarDeploymentPanelFound(); - AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel); - AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification(); - AvatarSpecification avspec = mgui.gtm.getAvatarSpecification(); - - // Generating code - if ( avddspec == null) { - jta.append("Error: No AVATAR Deployemnt specification\n"); - } else { - System.err.println("**AVATAR TOPCELL found"); - - TopCellGenerator topCellGenerator = new TopCellGenerator(avddspec, tracemode.isSelected(),avspec); - testGo(); - jta.append("Generation of TopCell executable code: done\n"); - - try { - jta.append("Saving MPSoC code in files\n"); - System.err.println("Saving MPSoC code in files\n"); - pathCode = code2.getText(); - - System.err.println("AVATAR TOPCELL saved in "+code2.getText()); - topCellGenerator.saveFile(pathCode); - - jta.append("Code saved\n"); - } catch (Exception e) { - jta.append("Could not generate files\n"); - System.err.println("Could not generate MPSoC files\n"); - e.printStackTrace(); - } - } - - - testGo(); - - - if (removeCFiles.isSelected()) { - - jta.append("Removing all .h files\n"); - - list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".h"); - if (list.length() == 0) { - jta.append("No files were deleted\n"); - } else { - jta.append("Files deleted:\n" + list + "\n"); - } - jta.append("Removing all .c files\n"); - list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".c"); - //list = FileUtils.deleteFiles(code1.getText() + AVATAR2SOCLIB.getGeneratedPath(), ".c"); - if (list.length() == 0) { - jta.append("No files were deleted\n"); - } else { - jta.append("Files deleted:\n" + list + "\n"); - } - } - - if (removeXFiles.isSelected()) { - jta.append("Removing all .x files\n"); - list = FileUtils.deleteFiles(code1.getText() , ".x"); - if (list.length() == 0) { - jta.append("No files were deleted\n"); - } else { - jta.append("Files deleted:\n" + list + "\n"); - } - } - - testGo(); - - selectedUnit = units.getSelectedIndex(); - //System.out.println("Selected item=" + selectedItem); - //AvatarSpecification avspec = mgui.gtm.getAvatarSpecification(); - - // Generating code - if (avspec == null) { - jta.append("Error: No AVATAR specification\n"); - } else { - - TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec,avspec); - gene.includeUserCode(putUserCode.isSelected()); - gene.setTimeUnit(selectedUnit); - gene.generateSoclib(debugmode.isSelected(), tracemode.isSelected()); - - if ( avddspec == null) { - jta.append("Error: No AVATAR Deployment specification\n"); - } else { - System.err.println("AVATAR TOPCELL found"); - } - - TopCellGenerator topCellGenerator = new TopCellGenerator(avddspec, tracemode.isSelected(),avspec); - testGo(); - jta.append("Generation of TopCell executable code: done\n"); - - try { - jta.append("Saving code in files\n"); - pathCode = code2.getText(); - topCellGenerator.saveFile(pathCode); - - jta.append("Code saved\n"); - } catch (Exception e) { - jta.append("Could not generate files\n"); - } - - testGo(); - jta.append("Generation of C-SOCLIB executable code: done\n"); - //t2j.printJavaClasses(); - try { - jta.append("Saving code in files\n"); - pathCode = code1.getText(); - gene.saveInFiles(pathCode); - - jta.append("Code saved\n"); - } catch (Exception e) { - jta.append("Could not generate files\n"); - } - } - } - - testGo(); - - // Compilation - if (jp1.getSelectedIndex() == 1) { - cmd = compiler.getText(); - jta.append("Compiling executable code with command: \n" + cmd + "\n"); - - rshc = new RshClient(hostExecute); - // AssumE data are on the remote host - // Command - try { - processCmd(cmd, jta); - //data = processCmd(cmd); - //jta.append(data); - jta.append("Compilation done\n"); - } catch (LauncherException le) { - jta.append("Error: " + le.getMessage() + "\n"); - mode = STOPPED; - setButtons(); - return; - } catch (Exception e) { - mode = STOPPED; - setButtons(); - return; - } - } - - if (jp1.getSelectedIndex() == 2) { - try { - // if (selectedRun == 1) { - //cmd = exe3.getText(); - //} else { - cmd = exe4.getText(); - // } - - jta.append("Executing code with command: \n" + cmd + "\n"); - - rshc = new RshClient(hostExecute); - // Assume data are on the remote host - // Command - - processCmd(cmd, jta); - //jta.append(data); - jta.append("Execution done\n"); - } catch (LauncherException le) { - jta.append("Error: " + le.getMessage() + "\n"); - mode = STOPPED; - setButtons(); - return; - } catch (Exception e) { - mode = STOPPED; - setButtons(); - return; - } - } - - if ((hasError == false) && (jp1.getSelectedIndex() < 2)) { - jp1.setSelectedIndex(jp1.getSelectedIndex() + 1); - } - //} + try { + + + if (jp1.getSelectedIndex() == 0) { + jta.append("Generating executable code (SOCLIB version)\n"); + //selectedUnit = 1; + + ADDDiagramPanel deploymentDiagramPanel = mgui.getFirstAvatarDeploymentPanelFound(); + AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel); + AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification(); + AvatarSpecification avspec = mgui.gtm.getAvatarSpecification(); + + // Generating code + if (avddspec == null) { + jta.append("Error: No AVATAR Deployemnt specification\n"); + } else { + System.err.println("**AVATAR TOPCELL found"); + + TopCellGenerator topCellGenerator = new TopCellGenerator(avddspec, tracemode.isSelected(), avspec); + testGo(); + jta.append("Generation of TopCell executable code: done\n"); + + try { + jta.append("Saving MPSoC code in files\n"); + System.err.println("Saving MPSoC code in files\n"); + pathCode = code2.getText(); + + System.err.println("AVATAR TOPCELL saved in " + code2.getText()); + topCellGenerator.saveFile(pathCode); + + jta.append("Code saved\n"); + } catch (Exception e) { + jta.append("Could not generate files\n"); + System.err.println("Could not generate MPSoC files\n"); + e.printStackTrace(); + } + } + + + testGo(); + + + if (removeCFiles.isSelected()) { + + jta.append("Removing all .h files\n"); + + list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".h"); + if (list.length() == 0) { + jta.append("No files were deleted\n"); + } else { + jta.append("Files deleted:\n" + list + "\n"); + } + jta.append("Removing all .c files\n"); + list = FileUtils.deleteFiles(code1.getText() + TasksAndMainGenerator.getGeneratedPath(), ".c"); + //list = FileUtils.deleteFiles(code1.getText() + AVATAR2SOCLIB.getGeneratedPath(), ".c"); + if (list.length() == 0) { + jta.append("No files were deleted\n"); + } else { + jta.append("Files deleted:\n" + list + "\n"); + } + } + + if (removeXFiles.isSelected()) { + jta.append("Removing all .x files\n"); + list = FileUtils.deleteFiles(code1.getText(), ".x"); + if (list.length() == 0) { + jta.append("No files were deleted\n"); + } else { + jta.append("Files deleted:\n" + list + "\n"); + } + } + + testGo(); + + selectedUnit = units.getSelectedIndex(); + //System.out.println("Selected item=" + selectedItem); + //AvatarSpecification avspec = mgui.gtm.getAvatarSpecification(); + + // Generating code + if (avspec == null) { + jta.append("Error: No AVATAR specification\n"); + } else { + + TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec, avspec); + gene.includeUserCode(putUserCode.isSelected()); + gene.setTimeUnit(selectedUnit); + gene.generateSoclib(debugmode.isSelected(), tracemode.isSelected()); + + if (avddspec == null) { + jta.append("Error: No AVATAR Deployment specification\n"); + } else { + System.err.println("AVATAR TOPCELL found"); + } + + TopCellGenerator topCellGenerator = new TopCellGenerator(avddspec, tracemode.isSelected(), avspec); + testGo(); + jta.append("Generation of TopCell executable code: done\n"); + + try { + jta.append("Saving code in files\n"); + pathCode = code2.getText(); + topCellGenerator.saveFile(pathCode); + + jta.append("Code saved\n"); + } catch (Exception e) { + jta.append("Could not generate files\n"); + } + + testGo(); + jta.append("Generation of C-SOCLIB executable code: done\n"); + //t2j.printJavaClasses(); + try { + jta.append("Saving code in files\n"); + pathCode = code1.getText(); + gene.saveInFiles(pathCode); + + jta.append("Code saved\n"); + } catch (Exception e) { + jta.append("Could not generate files\n"); + } + } + } + + testGo(); + + // Compilation + if (jp1.getSelectedIndex() == 1) { + cmd = compiler.getText(); + jta.append("Compiling executable code with command: \n" + cmd + "\n"); + + rshc = new RshClient(hostExecute); + // AssumE data are on the remote host + // Command + try { + processCmd(cmd, jta); + //data = processCmd(cmd); + //jta.append(data); + jta.append("Compilation done\n"); + } catch (LauncherException le) { + jta.append("Error: " + le.getMessage() + "\n"); + mode = STOPPED; + setButtons(); + return; + } catch (Exception e) { + mode = STOPPED; + setButtons(); + return; + } + } + + if (jp1.getSelectedIndex() == 2) { + try { + // if (selectedRun == 1) { + //cmd = exe3.getText(); + //} else { + cmd = exe4.getText(); + // } + + jta.append("Executing code with command: \n" + cmd + "\n"); + + rshc = new RshClient(hostExecute); + // Assume data are on the remote host + // Command + + processCmd(cmd, jta); + //jta.append(data); + jta.append("Execution done\n"); + } catch (LauncherException le) { + jta.append("Error: " + le.getMessage() + "\n"); + mode = STOPPED; + setButtons(); + return; + } catch (Exception e) { + mode = STOPPED; + setButtons(); + return; + } + } + + if ((hasError == false) && (jp1.getSelectedIndex() < 2)) { + jp1.setSelectedIndex(jp1.getSelectedIndex() + 1); + } + //} //fin ajout DG - } catch (InterruptedException ie) { + } catch (InterruptedException ie) { jta.append("Interrupted\n"); } @@ -726,8 +725,8 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame rshc.setCmd(cmd); rshc.sendExecuteCommandRequest(); final Writer output = new StringWriter(); - rshc.writeCommandMessages( output ); - _jta.append( output.toString() ); + rshc.writeCommandMessages(output); + _jta.append(output.toString()); return; } @@ -737,28 +736,28 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame } protected void setButtons() { - switch(mode) { - case NOT_STARTED: - start.setEnabled(true); - stop.setEnabled(false); - close.setEnabled(true); - //setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - getGlassPane().setVisible(false); - break; - case STARTED: - start.setEnabled(false); - stop.setEnabled(true); - close.setEnabled(false); - getGlassPane().setVisible(true); - //setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - break; - case STOPPED: - default: - start.setEnabled(false); - stop.setEnabled(false); - close.setEnabled(true); - getGlassPane().setVisible(false); - break; + switch (mode) { + case NOT_STARTED: + start.setEnabled(true); + stop.setEnabled(false); + close.setEnabled(true); + //setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + getGlassPane().setVisible(false); + break; + case STARTED: + start.setEnabled(false); + stop.setEnabled(true); + close.setEnabled(false); + getGlassPane().setVisible(true); + //setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + break; + case STOPPED: + default: + start.setEnabled(false); + stop.setEnabled(false); + close.setEnabled(true); + getGlassPane().setVisible(false); + break; } } @@ -777,7 +776,7 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame public void showSimulationTrace() { JFrameSimulationSDPanel jfssdp = new JFrameSimulationSDPanel(f, mgui, "Simulation trace of " + simulationTraceFile.getText()); jfssdp.setIconImage(IconManager.img8); - // jfssdp.setSize(600, 600); + // jfssdp.setSize(600, 600); GraphicLib.centerOnParent(jfssdp, 600, 600); if (selectedViewTrace == 0) { jfssdp.setFileReference(simulationTraceFile.getText()); @@ -790,35 +789,35 @@ public class JDialogAvatarddExecutableCodeGeneration extends javax.swing.JFrame //----------Ajout CD------------ public void showOverflowStatus() { - try{ - //String chemin = "~/TTool/MPSoC/soclib/soclib/platform/topcells/caba-vgmn-mutekh_kernel_tutorial/"; //ajouter le chemin relatif - String path = ConfigurationTTool.AVATARMPSoCPerformanceEvaluationDirectory; - //tentative d'instanciation de AvatarRelation afin d'utiliser getSizeOfFIFO() - // AvatarRelation ar = new AvatarRelation(); - - //int fifo = ar.getSizeOfFIFO(); //ajouter dynamiquement la taille du FIFO - //String taille = ""+fifo; - String taille = "0"; - - String log = "mwmr0.log"; //ajouter dynamiquement le nom du log généré - - String[] commande = {"sh", path+"callingOverflow.sh", taille, path, log}; + try { + //String chemin = "~/TTool/MPSoC/soclib/soclib/platform/topcells/caba-vgmn-mutekh_kernel_tutorial/"; //ajouter le chemin relatif + String path = ConfigurationTTool.AVATARMPSoCPerformanceEvaluationDirectory; + //tentative d'instanciation de AvatarRelation afin d'utiliser getSizeOfFIFO() + // AvatarRelation ar = new AvatarRelation(); + + //int fifo = ar.getSizeOfFIFO(); //ajouter dynamiquement la taille du FIFO + //String taille = ""+fifo; + String taille = "0"; + + String log = "mwmr0.log"; //ajouter dynamiquement le nom du log généré + + String[] commande = {"sh", path + "callingOverflow.sh", taille, path, log}; /*idealement il faudrait inclure un moyen de detecter l'OS sur lequel l'application est lancé car le script utilise la commande "acroread" qui ne fonctionne que sur linux. Ainsi ajouter un paramètre avec l'OS permetterais de générer la commande appropriée sur windows ou mac*/ - // Use System.getProperty( "os.name" ); - ProcessBuilder pb = new ProcessBuilder(commande);//Letitia Runtime.runtimexec() - pb.redirectError(ProcessBuilder.Redirect.INHERIT); - Process p = pb.start(); - - // FIXME: Should the return code be tested? - int exitStatus = p.waitFor(); - - } catch (InterruptedException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } + // Use System.getProperty( "os.name" ); + ProcessBuilder pb = new ProcessBuilder(commande);//Letitia Runtime.runtimexec() + pb.redirectError(ProcessBuilder.Redirect.INHERIT); + Process p = pb.start(); + + // FIXME: Should the return code be tested? + int exitStatus = p.waitFor(); + + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } } //-------------fin ajout CD----------- diff --git a/src/main/java/ui/window/JDialogBase.java b/src/main/java/ui/window/JDialogBase.java index ff76862e05b4b9956281c59cee52397cc8758f5d..7d669bc0523f118a7b8797afecf41b41ae341c0c 100644 --- a/src/main/java/ui/window/JDialogBase.java +++ b/src/main/java/ui/window/JDialogBase.java @@ -1,17 +1,10 @@ package ui.window; -import java.awt.Container; -import java.awt.Dialog; -import java.awt.Frame; -import java.awt.GridBagConstraints; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.AbstractAction; -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JDialog; -import javax.swing.KeyStroke; +import javax.swing.*; import ui.util.IconManager; @@ -68,4 +61,30 @@ public class JDialogBase extends JDialog { //Add closeButton's behaviour on Enter key this.getRootPane().setDefaultButton(closeButton); } + + protected void initButtons(Container c, + ActionListener al) { + + + JPanel p = new JPanel(new FlowLayout()); + + //Close Button + closeButton = new JButton("Save and Close", IconManager.imgic25); + closeButton.addActionListener(al); + p.add(closeButton); + + + + //Cancel Button + cancelButton = new JButton("Cancel", IconManager.imgic27); + cancelButton.addActionListener(al); + p.add(cancelButton); + + c.add(p, BorderLayout.SOUTH); + + //Add closeButton's behaviour on Enter key + this.getRootPane().setDefaultButton(closeButton); + } + + } diff --git a/src/main/shared.iml b/src/main/shared.iml index 2f401a19025e2e2f48bdeedd6d118c4c7665dea9..73f46c9a41a7303d88958c12219c3cd5e3e50d2c 100644 --- a/src/main/shared.iml +++ b/src/main/shared.iml @@ -4,15 +4,10 @@ <output url="file://$MODULE_DIR$/../../build/classes/main" /> <output-test url="file://$MODULE_DIR$/../../build/classes/test" /> <exclude-output /> - <content url="file://$MODULE_DIR$/java"> + <content url="file://$MODULE_DIR$/.."> <sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" /> - </content> - <content url="file://$MODULE_DIR$/resources"> <sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" /> </content> - <content url="file://$MODULE_DIR$/../../tests/util/fr.tpt.ttool.tests.util/src"> - <sourceFolder url="file://$MODULE_DIR$/../../tests/util/fr.tpt.ttool.tests.util/src" isTestSource="true" /> - </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="library" name="libs" level="project" /> diff --git a/ttool/src/main/ttool.iml b/ttool/src/main/ttool.iml index 1213f58b477ce5bbc31c8b38cb350278ac0f0d5c..da9d39bad486082c1d2d6f58b6e0d89fbbabdd9d 100644 --- a/ttool/src/main/ttool.iml +++ b/ttool/src/main/ttool.iml @@ -4,14 +4,11 @@ <output url="file://$MODULE_DIR$/../../build/classes/main/java" /> <output-test url="file://$MODULE_DIR$/../../build/classes/test/java" /> <exclude-output /> - <content url="file://$MODULE_DIR$/java"> + <content url="file://$MODULE_DIR$/.."> <sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" /> - </content> - <content url="file://$MODULE_DIR$/../test/java"> <sourceFolder url="file://$MODULE_DIR$/../test/java" isTestSource="true" /> - </content> - <content url="file://$MODULE_DIR$/../test/resources"> <sourceFolder url="file://$MODULE_DIR$/../test/resources" type="java-test-resource" /> + <excludeFolder url="file://$MODULE_DIR$/../test/libs" /> </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" />